diff --git a/CMakeLists.txt b/CMakeLists.txt index 7da83753e..56896f91e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,8 @@ project(spirv-tools) enable_testing() set(SPIRV_TOOLS "SPIRV-Tools") +include(GNUInstallDirs) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") @@ -48,6 +50,11 @@ if ("${CMAKE_BUILD_TYPE}" STREQUAL "") set(CMAKE_BUILD_TYPE "Debug") endif() +option(SKIP_SPIRV_TOOLS_INSTALL "Skip installation" ${SKIP_SPIRV_TOOLS_INSTALL}) +if(NOT ${SKIP_SPIRV_TOOLS_INSTALL}) + set(ENABLE_SPIRV_TOOLS_INSTALL ON) +endif() + option(SPIRV_WERROR "Enable error on warning" ON) if(("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")) set(COMPILER_IS_LIKE_GNU TRUE) @@ -165,13 +172,15 @@ add_subdirectory(tools) add_subdirectory(test) add_subdirectory(examples) -install( - FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv-tools/libspirv.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv-tools/libspirv.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv-tools/optimizer.hpp - DESTINATION - include/spirv-tools/) +if(ENABLE_SPIRV_TOOLS_INSTALL) + install( + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv-tools/libspirv.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv-tools/libspirv.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv-tools/optimizer.hpp + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR}/spirv-tools/) +endif(ENABLE_SPIRV_TOOLS_INSTALL) add_test(NAME spirv-tools-copyrights COMMAND ${PYTHON_EXECUTABLE} utils/check_copyright.py diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index af1697a24..6ea6ad260 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -289,7 +289,9 @@ target_include_directories(${SPIRV_TOOLS} ) set_property(TARGET ${SPIRV_TOOLS} PROPERTY FOLDER "SPIRV-Tools libraries") -install(TARGETS ${SPIRV_TOOLS} - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) +if(ENABLE_SPIRV_TOOLS_INSTALL) + install(TARGETS ${SPIRV_TOOLS} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif(ENABLE_SPIRV_TOOLS_INSTALL) diff --git a/source/comp/CMakeLists.txt b/source/comp/CMakeLists.txt index 1cf312fbf..11def56aa 100644 --- a/source/comp/CMakeLists.txt +++ b/source/comp/CMakeLists.txt @@ -26,7 +26,9 @@ target_link_libraries(SPIRV-Tools-comp set_property(TARGET SPIRV-Tools-comp PROPERTY FOLDER "SPIRV-Tools libraries") -install(TARGETS SPIRV-Tools-comp - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) +if(ENABLE_SPIRV_TOOLS_INSTALL) + install(TARGETS SPIRV-Tools-comp + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif(ENABLE_SPIRV_TOOLS_INSTALL) diff --git a/source/opt/CMakeLists.txt b/source/opt/CMakeLists.txt index 5cf00cb0e..f1de87662 100644 --- a/source/opt/CMakeLists.txt +++ b/source/opt/CMakeLists.txt @@ -82,7 +82,10 @@ target_link_libraries(SPIRV-Tools-opt set_property(TARGET SPIRV-Tools-opt PROPERTY FOLDER "SPIRV-Tools libraries") -install(TARGETS SPIRV-Tools-opt - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) +if(ENABLE_SPIRV_TOOLS_INSTALL) + install(TARGETS SPIRV-Tools-opt + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif(ENABLE_SPIRV_TOOLS_INSTALL) + diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index e5ce2cbf9..4dc0f1385 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -62,8 +62,10 @@ if (NOT ${SPIRV_SKIP_EXECUTABLES}) set(SPIRV_INSTALL_TARGETS spirv-as spirv-dis spirv-val spirv-opt spirv-stats spirv-cfg spirv-markv) - install(TARGETS ${SPIRV_INSTALL_TARGETS} - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) + if(ENABLE_SPIRV_TOOLS_INSTALL) + install(TARGETS ${SPIRV_INSTALL_TARGETS} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif(ENABLE_SPIRV_TOOLS_INSTALL) endif() diff --git a/tools/emacs/CMakeLists.txt b/tools/emacs/CMakeLists.txt index 3785771f0..ecd7c277a 100644 --- a/tools/emacs/CMakeLists.txt +++ b/tools/emacs/CMakeLists.txt @@ -40,7 +40,9 @@ option(SPIRV_TOOLS_INSTALL_EMACS_HELPERS ${SPIRV_TOOLS_INSTALL_EMACS_HELPERS}) if (${SPIRV_TOOLS_INSTALL_EMACS_HELPERS}) if(EXISTS /etc/emacs/site-start.d) - install(FILES 50spirv-tools.el DESTINATION /etc/emacs/site-start.d) + if(ENABLE_SPIRV_TOOLS_INSTALL) + install(FILES 50spirv-tools.el DESTINATION /etc/emacs/site-start.d) + endif(ENABLE_SPIRV_TOOLS_INSTALL) endif() endif() diff --git a/tools/lesspipe/CMakeLists.txt b/tools/lesspipe/CMakeLists.txt index 10b5df45a..484e51e58 100644 --- a/tools/lesspipe/CMakeLists.txt +++ b/tools/lesspipe/CMakeLists.txt @@ -23,4 +23,6 @@ # permissions. # We have a .sh extension because Windows users often configure # executable settings via filename extension. -install(PROGRAMS spirv-lesspipe.sh DESTINATION bin) +if(ENABLE_SPIRV_TOOLS_INSTALL) + install(PROGRAMS spirv-lesspipe.sh DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif(ENABLE_SPIRV_TOOLS_INSTALL)