mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-11-22 19:50:05 +00:00
Add SPIRV_SPIRV_COMPRESSION option to cmake
The option is off by default. cmake -DSPIRV_BUILD_COMPRESSION=ON .. enables the compression lib, executable, and test build. Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/834
This commit is contained in:
parent
cf6c20ee06
commit
c25b5bea35
@ -36,7 +36,7 @@ build:
|
|||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- mkdir build && cd build
|
- mkdir build && cd build
|
||||||
- cmake ..
|
- cmake -DSPIRV_BUILD_COMPRESSION=ON ..
|
||||||
- cmake --build . --config %CONFIGURATION%
|
- cmake --build . --config %CONFIGURATION%
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
|
@ -61,9 +61,10 @@ script:
|
|||||||
-DANDROID_NATIVE_API_LEVEL=android-9
|
-DANDROID_NATIVE_API_LEVEL=android-9
|
||||||
-DCMAKE_BUILD_TYPE=Release
|
-DCMAKE_BUILD_TYPE=Release
|
||||||
-DANDROID_ABI="armeabi-v7a with NEON"
|
-DANDROID_ABI="armeabi-v7a with NEON"
|
||||||
|
-DSPIRV_BUILD_COMPRESSION=ON
|
||||||
-DSPIRV_SKIP_TESTS=ON ..;
|
-DSPIRV_SKIP_TESTS=ON ..;
|
||||||
else
|
else
|
||||||
cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..;
|
cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DSPIRV_BUILD_COMPRESSION=ON ..;
|
||||||
fi
|
fi
|
||||||
# Due to the limitation of Travis platform, we cannot start too many concurrent jobs.
|
# Due to the limitation of Travis platform, we cannot start too many concurrent jobs.
|
||||||
# Otherwise GCC will panic with internal error, possibility because of memory issues.
|
# Otherwise GCC will panic with internal error, possibility because of memory issues.
|
||||||
|
1
CHANGES
1
CHANGES
@ -10,6 +10,7 @@ v2017.1-dev 2017-09-01
|
|||||||
- Fixes:
|
- Fixes:
|
||||||
#798: spirv-as should fail when given unrecognized long option
|
#798: spirv-as should fail when given unrecognized long option
|
||||||
#800: Inliner: Fix inlining function into header of multi-block loop
|
#800: Inliner: Fix inlining function into header of multi-block loop
|
||||||
|
#834: Add Cmake option to build the compressing codec. Off by default.
|
||||||
|
|
||||||
v2017.0 2017-09-01
|
v2017.0 2017-09-01
|
||||||
- Update README to describe that assembler, disassembler, and binary parser support
|
- Update README to describe that assembler, disassembler, and binary parser support
|
||||||
|
@ -54,7 +54,9 @@ option(SKIP_SPIRV_TOOLS_INSTALL "Skip installation" ${SKIP_SPIRV_TOOLS_INSTALL})
|
|||||||
if(NOT ${SKIP_SPIRV_TOOLS_INSTALL})
|
if(NOT ${SKIP_SPIRV_TOOLS_INSTALL})
|
||||||
set(ENABLE_SPIRV_TOOLS_INSTALL ON)
|
set(ENABLE_SPIRV_TOOLS_INSTALL ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
option(SPIRV_BUILD_COMPRESSION "Build SPIR-V compressing codec" OFF)
|
||||||
|
|
||||||
option(SPIRV_WERROR "Enable error on warning" ON)
|
option(SPIRV_WERROR "Enable error on warning" ON)
|
||||||
if(("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"))
|
if(("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"))
|
||||||
set(COMPILER_IS_LIKE_GNU TRUE)
|
set(COMPILER_IS_LIKE_GNU TRUE)
|
||||||
|
@ -197,6 +197,8 @@ The following CMake options are supported:
|
|||||||
the command line tools. This will prevent the tests from being built.
|
the command line tools. This will prevent the tests from being built.
|
||||||
* `SPIRV_SKIP_EXECUTABLES={ON|OFF}`, default `OFF`- Build only the library, not
|
* `SPIRV_SKIP_EXECUTABLES={ON|OFF}`, default `OFF`- Build only the library, not
|
||||||
the command line tools and tests.
|
the command line tools and tests.
|
||||||
|
* `SPIRV_BUILD_COMPRESSION={ON|OFF}`, default `OFF`- Build SPIR-V compressing
|
||||||
|
codec.
|
||||||
* `SPIRV_USE_SANITIZER=<sanitizer>`, default is no sanitizing - On UNIX
|
* `SPIRV_USE_SANITIZER=<sanitizer>`, default is no sanitizing - On UNIX
|
||||||
platforms with an appropriate version of `clang` this option enables the use
|
platforms with an appropriate version of `clang` this option enables the use
|
||||||
of the sanitizers documented [here][clang-sanitizers].
|
of the sanitizers documented [here][clang-sanitizers].
|
||||||
|
@ -12,23 +12,26 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
add_library(SPIRV-Tools-comp markv_codec.cpp markv_autogen.cpp)
|
if(SPIRV_BUILD_COMPRESSION)
|
||||||
|
add_library(SPIRV-Tools-comp markv_codec.cpp markv_autogen.cpp)
|
||||||
|
|
||||||
spvtools_default_compile_options(SPIRV-Tools-comp)
|
spvtools_default_compile_options(SPIRV-Tools-comp)
|
||||||
target_include_directories(SPIRV-Tools-comp
|
target_include_directories(SPIRV-Tools-comp
|
||||||
PUBLIC ${spirv-tools_SOURCE_DIR}/include
|
PUBLIC ${spirv-tools_SOURCE_DIR}/include
|
||||||
PUBLIC ${SPIRV_HEADER_INCLUDE_DIR}
|
PUBLIC ${SPIRV_HEADER_INCLUDE_DIR}
|
||||||
PRIVATE ${spirv-tools_BINARY_DIR}
|
PRIVATE ${spirv-tools_BINARY_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(SPIRV-Tools-comp
|
target_link_libraries(SPIRV-Tools-comp
|
||||||
PUBLIC ${SPIRV_TOOLS})
|
PUBLIC ${SPIRV_TOOLS})
|
||||||
|
|
||||||
set_property(TARGET SPIRV-Tools-comp PROPERTY FOLDER "SPIRV-Tools libraries")
|
set_property(TARGET SPIRV-Tools-comp PROPERTY FOLDER "SPIRV-Tools libraries")
|
||||||
|
|
||||||
if(ENABLE_SPIRV_TOOLS_INSTALL)
|
if(ENABLE_SPIRV_TOOLS_INSTALL)
|
||||||
install(TARGETS SPIRV-Tools-comp
|
install(TARGETS SPIRV-Tools-comp
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
endif(ENABLE_SPIRV_TOOLS_INSTALL)
|
endif(ENABLE_SPIRV_TOOLS_INSTALL)
|
||||||
|
|
||||||
|
endif(SPIRV_BUILD_COMPRESSION)
|
||||||
|
@ -17,7 +17,9 @@ set(VAL_TEST_COMMON_SRCS
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/../unit_spirv.h
|
${CMAKE_CURRENT_SOURCE_DIR}/../unit_spirv.h
|
||||||
)
|
)
|
||||||
|
|
||||||
add_spvtools_unittest(TARGET markv_codec
|
if(SPIRV_BUILD_COMPRESSION)
|
||||||
SRCS markv_codec_test.cpp ${VAL_TEST_COMMON_SRCS}
|
add_spvtools_unittest(TARGET markv_codec
|
||||||
LIBS SPIRV-Tools-comp ${SPIRV_TOOLS}
|
SRCS markv_codec_test.cpp ${VAL_TEST_COMMON_SRCS}
|
||||||
)
|
LIBS SPIRV-Tools-comp ${SPIRV_TOOLS}
|
||||||
|
)
|
||||||
|
endif(SPIRV_BUILD_COMPRESSION)
|
||||||
|
@ -42,8 +42,6 @@ if (NOT ${SPIRV_SKIP_EXECUTABLES})
|
|||||||
add_spvtools_tool(TARGET spirv-dis SRCS dis/dis.cpp LIBS ${SPIRV_TOOLS})
|
add_spvtools_tool(TARGET spirv-dis SRCS dis/dis.cpp LIBS ${SPIRV_TOOLS})
|
||||||
add_spvtools_tool(TARGET spirv-val SRCS val/val.cpp LIBS ${SPIRV_TOOLS})
|
add_spvtools_tool(TARGET spirv-val SRCS val/val.cpp LIBS ${SPIRV_TOOLS})
|
||||||
add_spvtools_tool(TARGET spirv-opt SRCS opt/opt.cpp LIBS SPIRV-Tools-opt ${SPIRV_TOOLS})
|
add_spvtools_tool(TARGET spirv-opt SRCS opt/opt.cpp LIBS SPIRV-Tools-opt ${SPIRV_TOOLS})
|
||||||
add_spvtools_tool(TARGET spirv-markv SRCS comp/markv.cpp
|
|
||||||
LIBS SPIRV-Tools-comp ${SPIRV_TOOLS})
|
|
||||||
add_spvtools_tool(TARGET spirv-stats
|
add_spvtools_tool(TARGET spirv-stats
|
||||||
SRCS stats/stats.cpp
|
SRCS stats/stats.cpp
|
||||||
stats/stats_analyzer.cpp
|
stats/stats_analyzer.cpp
|
||||||
@ -57,11 +55,17 @@ if (NOT ${SPIRV_SKIP_EXECUTABLES})
|
|||||||
${SPIRV_HEADER_INCLUDE_DIR})
|
${SPIRV_HEADER_INCLUDE_DIR})
|
||||||
target_include_directories(spirv-stats PRIVATE ${spirv-tools_SOURCE_DIR}
|
target_include_directories(spirv-stats PRIVATE ${spirv-tools_SOURCE_DIR}
|
||||||
${SPIRV_HEADER_INCLUDE_DIR})
|
${SPIRV_HEADER_INCLUDE_DIR})
|
||||||
target_include_directories(spirv-markv PRIVATE ${spirv-tools_SOURCE_DIR}
|
|
||||||
${SPIRV_HEADER_INCLUDE_DIR})
|
|
||||||
|
|
||||||
set(SPIRV_INSTALL_TARGETS spirv-as spirv-dis spirv-val spirv-opt spirv-stats spirv-cfg
|
set(SPIRV_INSTALL_TARGETS spirv-as spirv-dis spirv-val spirv-opt spirv-stats spirv-cfg)
|
||||||
spirv-markv)
|
|
||||||
|
if(SPIRV_BUILD_COMPRESSION)
|
||||||
|
add_spvtools_tool(TARGET spirv-markv SRCS comp/markv.cpp
|
||||||
|
LIBS SPIRV-Tools-comp ${SPIRV_TOOLS})
|
||||||
|
target_include_directories(spirv-markv PRIVATE ${spirv-tools_SOURCE_DIR}
|
||||||
|
${SPIRV_HEADER_INCLUDE_DIR})
|
||||||
|
set(SPIRV_INSTALL_TARGETS ${SPIRV_INSTALL_TARGETS} spirv-markv)
|
||||||
|
endif(SPIRV_BUILD_COMPRESSION)
|
||||||
|
|
||||||
if(ENABLE_SPIRV_TOOLS_INSTALL)
|
if(ENABLE_SPIRV_TOOLS_INSTALL)
|
||||||
install(TARGETS ${SPIRV_INSTALL_TARGETS}
|
install(TARGETS ${SPIRV_INSTALL_TARGETS}
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
Loading…
Reference in New Issue
Block a user