From 948dc034c58c098a4d608615ec39a0c92c8a8a5c Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Tue, 7 Jul 2020 11:22:33 +0100 Subject: [PATCH 1/2] Add new static targets to VS solution folders `GenericCodeGen` and `MachineIndependent` were missing from the generated visual studio solutions. Add these. --- glslang/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt index 98c81457..b0bfce81 100644 --- a/glslang/CMakeLists.txt +++ b/glslang/CMakeLists.txt @@ -50,6 +50,7 @@ endif(EMSCRIPTEN OR ENABLE_GLSLANG_JS) add_library(GenericCodeGen STATIC GenericCodeGen/CodeGen.cpp GenericCodeGen/Link.cpp) +set_property(TARGET GenericCodeGen PROPERTY FOLDER glslang) ################################################################################ # MachineIndependent @@ -129,7 +130,7 @@ if(ENABLE_HLSL) endif(ENABLE_HLSL) add_library(MachineIndependent STATIC ${MACHINEINDEPENDENT_SOURCES} ${MACHINEINDEPENDENT_HEADERS}) - +set_property(TARGET MachineIndependent PROPERTY FOLDER glslang) glslang_pch(SOURCES MachineIndependent/pch.cpp) target_link_libraries(MachineIndependent PRIVATE OGLCompiler OSDependent GenericCodeGen) From 3604be156c1e297145cf10bd7057b5504fd35588 Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Tue, 7 Jul 2020 11:49:40 +0100 Subject: [PATCH 2/2] Remove GLSLANG_BUILD_PIC flag On closer inspection, it appears that nearly all the targets use the `POSITION_INDEPENDENT_CODE` target option anyway. Simplify all this away by always being PIC. --- CMakeLists.txt | 14 -------------- glslang/CMakeLists.txt | 2 ++ 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c9041d81..3d66e2ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -107,14 +107,6 @@ if(USE_CCACHE) endif(CCACHE_FOUND) endif() -# If projects are statically importing glslang targets into a shared library -# then they'll likely need to build with -fPIC. This can be enabled by setting -# GLSLANG_BUILD_PIC to 1 before calling add_subdirectory() to import glslang. -# Note: -fPIC is automatically used when BUILD_SHARED_LIBS is enabled. -if(NOT DEFINED GLSLANG_BUILD_PIC) - option(GLSLANG_BUILD_PIC "Compile glslang with -fPIC" OFF) -endif() - # Precompiled header macro. Parameters are source file list and filename for pch cpp file. macro(glslang_pch SRCS PCHCPP) if(MSVC AND CMAKE_GENERATOR MATCHES "^Visual Studio" AND NOT ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" AND ENABLE_PCH) @@ -160,9 +152,6 @@ if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") add_compile_options(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs -Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable -fno-exceptions) add_compile_options(-Wno-reorder) # disable this from -Wall, since it happens all over. - if(BUILD_SHARED_LIBS OR GLSLANG_BUILD_PIC) - add_compile_options(-fPIC) - endif() if(NOT ENABLE_RTTI) add_compile_options(-fno-rtti) endif() @@ -183,9 +172,6 @@ elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" AND NOT MSVC) add_compile_options(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs -Wunused-parameter -Wunused-value -Wunused-variable) add_compile_options(-Wno-reorder) # disable this from -Wall, since it happens all over. - if(BUILD_SHARED_LIBS OR GLSLANG_BUILD_PIC) - add_compile_options(-fPIC) - endif() if(NOT ENABLE_RTTI) add_compile_options(-fno-rtti) endif() diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt index b0bfce81..9fcf81ca 100644 --- a/glslang/CMakeLists.txt +++ b/glslang/CMakeLists.txt @@ -50,6 +50,7 @@ endif(EMSCRIPTEN OR ENABLE_GLSLANG_JS) add_library(GenericCodeGen STATIC GenericCodeGen/CodeGen.cpp GenericCodeGen/Link.cpp) +set_property(TARGET GenericCodeGen PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET GenericCodeGen PROPERTY FOLDER glslang) ################################################################################ @@ -130,6 +131,7 @@ if(ENABLE_HLSL) endif(ENABLE_HLSL) add_library(MachineIndependent STATIC ${MACHINEINDEPENDENT_SOURCES} ${MACHINEINDEPENDENT_HEADERS}) +set_property(TARGET MachineIndependent PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET MachineIndependent PROPERTY FOLDER glslang) glslang_pch(SOURCES MachineIndependent/pch.cpp)