diff --git a/third_party/spirv-tools/CMakeLists.txt b/third_party/spirv-tools/CMakeLists.txt index 6ed56a81..2392dfd8 100755 --- a/third_party/spirv-tools/CMakeLists.txt +++ b/third_party/spirv-tools/CMakeLists.txt @@ -24,8 +24,19 @@ if (POLICY CMP0054) endif() set_property(GLOBAL PROPERTY USE_FOLDERS ON) +# Filament specific changes +if (APPLE) + set(CMAKE_MACOSX_RPATH ON) +endif (APPLE) +set(SPIRV_SKIP_EXECUTABLES_OPTION ON) +set(SPIRV_SKIP_TESTS_OPTION ON) +set(SKIP_SPIRV_TOOLS_INSTALL ON) +# End Filament specific changes + project(spirv-tools) -enable_testing() +# Filament specific changes +# enable_testing() +# End Filament specific changes set(SPIRV_TOOLS "SPIRV-Tools") include(GNUInstallDirs) @@ -68,7 +79,9 @@ if ("${CMAKE_BUILD_TYPE}" STREQUAL "") set(CMAKE_BUILD_TYPE "Debug") endif() -option(SKIP_SPIRV_TOOLS_INSTALL "Skip installation" ${SKIP_SPIRV_TOOLS_INSTALL}) +# Filament specific changes +# option(SKIP_SPIRV_TOOLS_INSTALL "Skip installation" ${SKIP_SPIRV_TOOLS_INSTALL}) +# End Filament specific changes if(NOT ${SKIP_SPIRV_TOOLS_INSTALL}) set(ENABLE_SPIRV_TOOLS_INSTALL ON) endif() @@ -231,11 +244,13 @@ if(ENABLE_SPIRV_TOOLS_INSTALL) endif() # Defaults to OFF if the user didn't set it. +# Filament specific changes option(SPIRV_SKIP_EXECUTABLES "Skip building the executable and tests along with the library" - ${SPIRV_SKIP_EXECUTABLES}) + ${SPIRV_SKIP_EXECUTABLES_OPTION}) option(SPIRV_SKIP_TESTS - "Skip building tests along with the library" ${SPIRV_SKIP_TESTS}) + "Skip building tests along with the library" ${SPIRV_SKIP_TESTS_OPTION}) +# End Filament specific changes if ("${SPIRV_SKIP_EXECUTABLES}") set(SPIRV_SKIP_TESTS ON) endif() @@ -279,8 +294,10 @@ endif() add_subdirectory(source) add_subdirectory(tools) -add_subdirectory(test) -add_subdirectory(examples) +# Filament specific changes +#add_subdirectory(test) +#add_subdirectory(examples) +# End Filament specific changes if(ENABLE_SPIRV_TOOLS_INSTALL) install( @@ -305,28 +322,30 @@ set(SPIRV_SHARED_LIBRARIES "-lSPIRV-Tools-shared") # Build pkg-config file # Use a first-class target so it's regenerated when relevant files are updated. -add_custom_target(spirv-tools-pkg-config ALL - COMMAND ${CMAKE_COMMAND} - -DCHANGES_FILE=${CMAKE_CURRENT_SOURCE_DIR}/CHANGES - -DTEMPLATE_FILE=${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Tools.pc.in - -DOUT_FILE=${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR} - -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR} - -DSPIRV_LIBRARIES=${SPIRV_LIBRARIES} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake - DEPENDS "CHANGES" "cmake/SPIRV-Tools.pc.in" "cmake/write_pkg_config.cmake") -add_custom_target(spirv-tools-shared-pkg-config ALL - COMMAND ${CMAKE_COMMAND} - -DCHANGES_FILE=${CMAKE_CURRENT_SOURCE_DIR}/CHANGES - -DTEMPLATE_FILE=${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Tools-shared.pc.in - -DOUT_FILE=${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR} - -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR} - -DSPIRV_SHARED_LIBRARIES=${SPIRV_SHARED_LIBRARIES} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake - DEPENDS "CHANGES" "cmake/SPIRV-Tools-shared.pc.in" "cmake/write_pkg_config.cmake") +# Filament specific changes +# add_custom_target(spirv-tools-pkg-config ALL +# COMMAND ${CMAKE_COMMAND} +# -DCHANGES_FILE=${CMAKE_CURRENT_SOURCE_DIR}/CHANGES +# -DTEMPLATE_FILE=${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Tools.pc.in +# -DOUT_FILE=${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc +# -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} +# -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR} +# -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR} +# -DSPIRV_LIBRARIES=${SPIRV_LIBRARIES} +# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake +# DEPENDS "CHANGES" "cmake/SPIRV-Tools.pc.in" "cmake/write_pkg_config.cmake") +# add_custom_target(spirv-tools-shared-pkg-config ALL +# COMMAND ${CMAKE_COMMAND} +# -DCHANGES_FILE=${CMAKE_CURRENT_SOURCE_DIR}/CHANGES +# -DTEMPLATE_FILE=${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Tools-shared.pc.in +# -DOUT_FILE=${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc +# -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} +# -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR} +# -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR} +# -DSPIRV_SHARED_LIBRARIES=${SPIRV_SHARED_LIBRARIES} +# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake +# DEPENDS "CHANGES" "cmake/SPIRV-Tools-shared.pc.in" "cmake/write_pkg_config.cmake") +# End Filament specific changes # Install pkg-config file if (ENABLE_SPIRV_TOOLS_INSTALL) @@ -201,7 +201,11 @@ if(NOT COMMAND find_host_program) endif() # Tests require Python3 -find_host_package(PythonInterp 3 REQUIRED) +if(CMAKE_VERSION VERSION_LESS "3.12" OR ${CMAKE_SYSTEM_NAME} MATCHES "Windows") + find_host_package(PythonInterp 3 REQUIRED) +else() + find_package(Python3 COMPONENTS Interpreter) +endif() # Check for symbol exports on Linux. # At the moment, this check will fail on the OSX build machines for the Android NDK. diff --git a/third_party/spirv-tools/external/CMakeLists.txt b/third_party/spirv-tools/external/CMakeLists.txt index 179a4012f..152cfc421 100644 --- a/third_party/spirv-tools/external/CMakeLists.txt +++ b/third_party/spirv-tools/external/CMakeLists.txt @@ -45,8 +45,10 @@ if (IS_DIRECTORY ${SPIRV_HEADER_DIR}) # Do this so enclosing projects can use SPIRV-Headers_SOURCE_DIR to find # headers to include. if (NOT DEFINED SPIRV-Headers_SOURCE_DIR) - set(SPIRV_HEADERS_SKIP_INSTALL ON) - set(SPIRV_HEADERS_SKIP_EXAMPLES ON) +# Filament specific changes + #set(SPIRV_HEADERS_SKIP_INSTALL ON) + #set(SPIRV_HEADERS_SKIP_EXAMPLES ON) +# End Filament specific changes add_subdirectory(${SPIRV_HEADER_DIR}) endif() else() diff --git a/third_party/spirv-tools/external/spirv-headers/CMakeLists.txt b/third_party/spirv-tools/external/spirv-headers/CMakeLists.txt index eb4694786..d3940532d 100644 --- a/third_party/spirv-tools/external/spirv-headers/CMakeLists.txt +++ b/third_party/spirv-tools/external/spirv-headers/CMakeLists.txt @@ -49,11 +49,11 @@ add_custom_target(install-headers COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/include/spirv) -option(SPIRV_HEADERS_SKIP_EXAMPLES "Skip building examples" - ${SPIRV_HEADERS_SKIP_EXAMPLES}) +# Filament specific changes +option(SPIRV_HEADERS_SKIP_EXAMPLES "Skip building examples" ON) -option(SPIRV_HEADERS_SKIP_INSTALL "Skip install" - ${SPIRV_HEADERS_SKIP_INSTALL}) +option(SPIRV_HEADERS_SKIP_INSTALL "Skip install" ON) +# End Filament specific changes if(NOT ${SPIRV_HEADERS_SKIP_EXAMPLES}) set(SPIRV_HEADERS_ENABLE_EXAMPLES ON) diff --git a/third_party/spirv-tools/source/CMakeLists.txt b/third_party/spirv-tools/source/CMakeLists.txt index 65087f2c..38101ab2 100644 --- a/third_party/spirv-tools/source/CMakeLists.txt +++ b/third_party/spirv-tools/source/CMakeLists.txt @@ -364,13 +364,15 @@ endfunction() # Always build ${SPIRV_TOOLS}-shared. This is expected distro packages, and # unlike the other SPIRV_TOOLS target, defaults to hidden symbol visibility. -add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES}) -spirv_tools_default_target_options(${SPIRV_TOOLS}-shared) -set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden) -target_compile_definitions(${SPIRV_TOOLS}-shared - PRIVATE SPIRV_TOOLS_IMPLEMENTATION - PUBLIC SPIRV_TOOLS_SHAREDLIB -) +# Filament specific changes +# add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES}) +# spirv_tools_default_target_options(${SPIRV_TOOLS}-shared) +# set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden) +# target_compile_definitions(${SPIRV_TOOLS}-shared +# PRIVATE SPIRV_TOOLS_IMPLEMENTATION +# PUBLIC SPIRV_TOOLS_SHAREDLIB +# ) +# End Filament specific changes if(SPIRV_TOOLS_BUILD_STATIC) add_library(${SPIRV_TOOLS}-static STATIC ${SPIRV_SOURCES}) @@ -386,11 +388,17 @@ if(SPIRV_TOOLS_BUILD_STATIC) add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS}-static) endif() - set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static ${SPIRV_TOOLS}-shared) +# Filament specific changes + # set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static ${SPIRV_TOOLS}-shared) + set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static) +# End Filament specific changes else() add_library(${SPIRV_TOOLS} ${SPIRV_TOOLS_LIBRARY_TYPE} ${SPIRV_SOURCES}) spirv_tools_default_target_options(${SPIRV_TOOLS}) - set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS} ${SPIRV_TOOLS}-shared) +# Filament specific changes + # set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS} ${SPIRV_TOOLS}-shared) + set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}) +# End Filament specific changes endif() if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")