diff --git a/CMakeLists.txt b/CMakeLists.txt index a80cd5f..0fd15ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,6 +87,13 @@ endmacro(glslang_pch) project(glslang) +# using pkg-config to configure include paths and link libraries +include(FindPkgConfig) +pkg_check_modules(SPIRV_TOOLS REQUIRED SPIRV-Tools>=2019.2.1) +if(BUILD_SHARED_LIBS) + pkg_check_modules(SPIRV_TOOLS_SHARED REQUIRED SPIRV-Tools-shared>=2019.2.1) +endif(BUILD_SHARED_LIBS) + if(ENABLE_CTEST) include(CTest) endif() @@ -175,11 +182,7 @@ if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External) add_subdirectory(External) endif() -if(NOT TARGET SPIRV-Tools-opt) - set(ENABLE_OPT OFF) -endif() - -if(ENABLE_OPT) +if(${SPIRV_TOOLS_FOUND} EQUAL 1) message(STATUS "optimizer enabled") add_definitions(-DENABLE_OPT=1) else() diff --git a/External/CMakeLists.txt b/External/CMakeLists.txt index 6ff4f47..cfb48bd 100644 --- a/External/CMakeLists.txt +++ b/External/CMakeLists.txt @@ -35,10 +35,3 @@ if(BUILD_TESTING) endif() endif() -if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt) - if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools) - set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests") - add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools spirv-tools) - endif() -endif() - diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt index 439b991..494e21f 100755 --- a/SPIRV/CMakeLists.txt +++ b/SPIRV/CMakeLists.txt @@ -40,6 +40,10 @@ target_include_directories(SPIRV PUBLIC $ $) + +set(SPIRV_NAME spirv) +set(SPIRV_VERSION 1.5.1) + if (ENABLE_SPVREMAPPER) add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) set_property(TARGET SPVRemapper PROPERTY FOLDER glslang) @@ -53,15 +57,21 @@ if(WIN32 AND BUILD_SHARED_LIBS) endif() endif() +target_include_directories(SPIRV PUBLIC ${SPIRV_TOOLS_INCLUDE_DIRS}) +target_compile_options(SPIRV PUBLIC ${SPIRV_TOOLS_CFLAGS_OTHER}) +target_link_libraries(SPIRV ${SPIRV_TOOLS_LIBRARIES}) +if(BUILD_SHARED_LIBS) + target_include_directories(SPIRV PUBLIC ${SPIRV_TOOLS_SHARED_INCLUDE_DIRS}) + target_compile_options(SPIRV PUBLIC ${SPIRV_TOOLS_SHARED_CFLAGS_OTHER}) + target_link_libraries(SPIRV ${SPIRV_TOOLS_SHARED_LIBRARIES}) +endif(BUILD_SHARED_LIBS) + if(ENABLE_OPT) target_include_directories(SPIRV PRIVATE ${spirv-tools_SOURCE_DIR}/include PRIVATE ${spirv-tools_SOURCE_DIR}/source ) - target_link_libraries(SPIRV glslang SPIRV-Tools-opt) - target_include_directories(SPIRV PUBLIC - $ - $) + target_link_libraries(SPIRV glslang) else() target_link_libraries(SPIRV glslang) endif(ENABLE_OPT) diff --git a/SPIRV/SpvTools.cpp b/SPIRV/SpvTools.cpp index 97bd4e7..098cb84 100644 --- a/SPIRV/SpvTools.cpp +++ b/SPIRV/SpvTools.cpp @@ -43,8 +43,8 @@ #include #include "SpvTools.h" -#include "spirv-tools/optimizer.hpp" -#include "spirv-tools/libspirv.h" +#include +#include namespace glslang { diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt index 2cf2899..c981c0a 100644 --- a/StandAlone/CMakeLists.txt +++ b/StandAlone/CMakeLists.txt @@ -23,6 +23,14 @@ if(ENABLE_SPVREMAPPER) set(LIBRARIES ${LIBRARIES} SPVRemapper) endif() +if(BUILD_SHARED_LIBS) + set(LIBRARIES ${LIBRARIES} ${SPIRV_TOOLS_SHARED_LIBRARIES}) + target_include_directories(glslangValidator PUBLIC ${SPIRV_TOOLS_SHARED_INCLUDE_DIRS}) +else() + set(LIBRARIES ${LIBRARIES} ${SPIRV_TOOLS_LIBRARIES}) + target_include_directories(glslangValidator PUBLIC ${SPIRV_TOOLS_INCLUDE_DIRS}) +endif(BUILD_SHARED_LIBS) + if(WIN32) set(LIBRARIES ${LIBRARIES} psapi) elseif(UNIX) @@ -32,9 +40,6 @@ elseif(UNIX) endif(WIN32) target_link_libraries(glslangValidator ${LIBRARIES}) -target_include_directories(glslangValidator PUBLIC - $ - $) if(ENABLE_SPVREMAPPER) set(REMAPPER_SOURCES spirv-remap.cpp) diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt index a0259a3..dab067d 100644 --- a/glslang/CMakeLists.txt +++ b/glslang/CMakeLists.txt @@ -80,6 +80,7 @@ set(HEADERS MachineIndependent/preprocessor/PpContext.h MachineIndependent/preprocessor/PpTokens.h) +set(VERSION 8.13.3559) glslang_pch(SOURCES MachineIndependent/pch.cpp) add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS})