From fde703438f815d274511b62070a2974b1ef706a5 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 31 Mar 2014 00:06:32 +0000 Subject: [PATCH] CMake: Collapse into a single library all the libraries under the glslang directory, and represent the proper hierarchy in MSVS. There are still a total of 3 libraries to link against: glslang, OGLCompiler, and OSDependent. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26137 e7fa87d3-cd2b-0410-9028-fcbf551c1848 --- CMakeLists.txt | 11 +-- OGLCompilersDLL/CMakeLists.txt | 10 +- StandAlone/CMakeLists.txt | 64 ++++++------ glslang/CMakeLists.txt | 97 +++++++++++++++++++ glslang/GenericCodeGen/CMakeLists.txt | 7 -- glslang/MachineIndependent/CMakeLists.txt | 63 ------------ .../preprocessor/CMakeLists.txt | 20 ---- glslang/OSDependent/Windows/CMakeLists.txt | 8 +- 8 files changed, 147 insertions(+), 133 deletions(-) create mode 100644 glslang/CMakeLists.txt delete mode 100644 glslang/GenericCodeGen/CMakeLists.txt delete mode 100644 glslang/MachineIndependent/CMakeLists.txt delete mode 100644 glslang/MachineIndependent/preprocessor/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 712b9374b..d0c2f6d1a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,20 +7,11 @@ project(glslang) if(WIN32) set(CMAKE_GENERATOR_TOOLSET "v110" CACHE STRING "Platform Toolset" FORCE) include(ChooseMSVCCRT.cmake) - foreach(build_type ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE}) - string(TOUPPER "${build_type}" build) - message("CMAKE_CXX_FLAGS_${build} are ${CMAKE_CXX_FLAGS_${build}}") - endforeach(build_type) - - add_subdirectory(glslang/OSDependent/Windows) elseif(UNIX) - add_subdirectory(glslang/OSDependent/Linux) else(WIN32) message("unkown platform") endif(WIN32) -add_subdirectory(glslang/MachineIndependent) -add_subdirectory(glslang/MachineIndependent/preprocessor) -add_subdirectory(glslang/GenericCodeGen) +add_subdirectory(glslang) add_subdirectory(OGLCompilersDLL) add_subdirectory(StandAlone) diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt index 634bb7b82..6ade8caba 100644 --- a/OGLCompilersDLL/CMakeLists.txt +++ b/OGLCompilersDLL/CMakeLists.txt @@ -6,10 +6,16 @@ if(WIN32) elseif(UNIX) include_directories(${include_directories} ../glslang/OSDependent/Linux) else(WIN32) - message("unkown platform") + message("unknown platform") endif(WIN32) -add_library(OGLCompiler STATIC InitializeDll.cpp InitializeDll.h) +set(SOURCES InitializeDll.cpp InitializeDll.h) + +add_library(OGLCompiler STATIC ${SOURCES}) + +if(WIN32) + source_group("Source" FILES ${SOURCES}) +endif(WIN32) install(TARGETS OGLCompiler ARCHIVE DESTINATION lib) diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt index 5e4c671ce..29022315f 100644 --- a/StandAlone/CMakeLists.txt +++ b/StandAlone/CMakeLists.txt @@ -1,30 +1,34 @@ -cmake_minimum_required(VERSION 2.8) - -include_directories(.) -if(WIN32) - include_directories(${include_directories} ../glslang/OSDependent/Windows) -elseif(UNIX) - include_directories(${include_directories} ../glslang/OSDependent/Linux) -else(WIN32) - message("unkown platform") -endif(WIN32) - -add_executable(glslangValidator StandAlone.cpp) - -set(LIBRARIES - glslang - GenericCodeGen - OSDependent - Preprocessor - OGLCompiler) - -if(WIN32) - set(LIBRARIES ${LIBRARIES} psapi) -elseif(UNIX) - set(LIBRARIES ${LIBRARIES} pthread) -endif(WIN32) - -target_link_libraries(glslangValidator ${LIBRARIES}) - -install(TARGETS glslangValidator - RUNTIME DESTINATION bin) +cmake_minimum_required(VERSION 2.8) + +include_directories(.) +if(WIN32) + include_directories(${include_directories} ../glslang/OSDependent/Windows) +elseif(UNIX) + include_directories(${include_directories} ../glslang/OSDependent/Linux) +else(WIN32) + message("unkown platform") +endif(WIN32) + +set(SOURCES StandAlone.cpp) + +add_executable(glslangValidator ${SOURCES}) + +set(LIBRARIES + glslang + OGLCompiler + OSDependent) + +if(WIN32) + set(LIBRARIES ${LIBRARIES} psapi) +elseif(UNIX) + set(LIBRARIES ${LIBRARIES} pthread) +endif(WIN32) + +target_link_libraries(glslangValidator ${LIBRARIES}) + +if(WIN32) + source_group("Source" FILES ${SOURCES}) +endif(WIN32) + +install(TARGETS glslangValidator + RUNTIME DESTINATION bin) diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt new file mode 100644 index 000000000..450b14062 --- /dev/null +++ b/glslang/CMakeLists.txt @@ -0,0 +1,97 @@ +cmake_minimum_required(VERSION 2.8) + +include_directories(MachineIndependent ../OGLCompilersDLL ${CMAKE_CURRENT_BINARY_DIR}) +if(WIN32) + add_subdirectory(OSDependent/Windows) + include_directories(${include_directories} OSDependent/Windows) +elseif(UNIX) + add_subdirectory(OSDependent/Linux) + include_directories(${include_directories} OSDependent/Linux) +else(WIN32) + message("unkown platform") +endif(WIN32) + +set(SOURCES + MachineIndependent/glslang.y + MachineIndependent/Constant.cpp + MachineIndependent/InfoSink.cpp + MachineIndependent/Initialize.cpp + MachineIndependent/IntermTraverse.cpp + MachineIndependent/Intermediate.cpp + MachineIndependent/ParseHelper.cpp + MachineIndependent/PoolAlloc.cpp + MachineIndependent/RemoveTree.cpp + MachineIndependent/Scan.cpp + MachineIndependent/ShaderLang.cpp + MachineIndependent/SymbolTable.cpp + MachineIndependent/Versions.cpp + MachineIndependent/intermOut.cpp + MachineIndependent/limits.cpp + MachineIndependent/linkValidate.cpp + MachineIndependent/parseConst.cpp + MachineIndependent/reflection.cpp + MachineIndependent/preprocessor/Pp.cpp + MachineIndependent/preprocessor/PpAtom.cpp + MachineIndependent/preprocessor/PpContext.cpp + MachineIndependent/preprocessor/PpMemory.cpp + MachineIndependent/preprocessor/PpScanner.cpp + MachineIndependent/preprocessor/PpSymbols.cpp + MachineIndependent/preprocessor/PpTokens.cpp + GenericCodeGen/CodeGen.cpp + GenericCodeGen/Link.cpp) + +set(HEADERS + Public/ShaderLang.h + Include/BaseTypes.h + Include/Common.h + Include/ConstantUnion.h + Include/InfoSink.h + Include/InitializeGlobals.h + Include/intermediate.h + Include/PoolAlloc.h + Include/ResourceLimits.h + Include/revision.h + Include/ShHandle.h + Include/Types.h + MachineIndependent/gl_types.h + MachineIndependent/Initialize.h + MachineIndependent/localintermediate.h + MachineIndependent/ParseHelper.h + MachineIndependent/reflection.h + MachineIndependent/RemoveTree.h + MachineIndependent/Scan.h + MachineIndependent/ScanContext.h + MachineIndependent/SymbolTable.h + MachineIndependent/unistd.h + MachineIndependent/Versions.h + MachineIndependent/preprocessor/PpContext.h + MachineIndependent/preprocessor/PpTokens.h) + +find_package(BISON) +if(BISON_FOUND) + message("bison found") + BISON_TARGET(GLSLParser glslang.y ${CMAKE_CURRENT_BINARY_DIR}/gen_glslang_tab.cpp + COMPILE_FLAGS + "--defines=${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h") +else(BISON_FOUND) + message("using custom command for bison on glslang.y") + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h + COMMAND ../tools/bison.exe --defines=${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp + MAIN_DEPENDENCY MachineIndependent/glslang.y + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + set(BISON_GLSLParser_OUTPUT_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp) +endif(BISON_FOUND) + +add_library(glslang STATIC ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS}) + +if(WIN32) + source_group("Public" REGULAR_EXPRESSION "Public/*") + source_group("MachineIndependent" REGULAR_EXPRESSION "MachineIndependent/[^/]*") + source_group("Generated Files" FILES ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h) + source_group("Include" REGULAR_EXPRESSION "Include/[^/]*") + source_group("GenericCodeGen" REGULAR_EXPRESSION "GenericCodeGen/*") + source_group("MachineIndependent\\Preprocessor" REGULAR_EXPRESSION "MachineIndependent/preprocessor/*") +endif(WIN32) + +install(TARGETS glslang + ARCHIVE DESTINATION lib) diff --git a/glslang/GenericCodeGen/CMakeLists.txt b/glslang/GenericCodeGen/CMakeLists.txt deleted file mode 100644 index df4b6f67c..000000000 --- a/glslang/GenericCodeGen/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -cmake_minimum_required(VERSION 2.8) - -include_directories(. ..) -set(SOURCES CodeGen.cpp Link.cpp) - -add_library(GenericCodeGen STATIC ${SOURCES}) - diff --git a/glslang/MachineIndependent/CMakeLists.txt b/glslang/MachineIndependent/CMakeLists.txt deleted file mode 100644 index ceb7b045b..000000000 --- a/glslang/MachineIndependent/CMakeLists.txt +++ /dev/null @@ -1,63 +0,0 @@ -cmake_minimum_required(VERSION 2.8) - -include_directories(. ../../OGLCompilersDLL ${CMAKE_CURRENT_BINARY_DIR}) -if(WIN32) - include_directories(${include_directories} ../OSDependent/Windows) -elseif(UNIX) - include_directories(${include_directories} ../OSDependent/Linux) -else(WIN32) - message("unkown platform") -endif(WIN32) - -set(SOURCES - Constant.cpp - InfoSink.cpp - Initialize.cpp - IntermTraverse.cpp - Intermediate.cpp - ParseHelper.cpp - PoolAlloc.cpp - RemoveTree.cpp - Scan.cpp - ShaderLang.cpp - SymbolTable.cpp - Versions.cpp - intermOut.cpp - limits.cpp - linkValidate.cpp - parseConst.cpp - reflection.cpp) - -set(HEADERS - ../Public/ShaderLang.h - gl_types.h - Initialize.h - localintermediate.h - ParseHelper.h - reflection.h - RemoveTree.h - Scan.h - ScanContext.h - SymbolTable.h - unistd.h - Versions.h) - -find_package(BISON) -if(BISON_FOUND) - message("bison found") - BISON_TARGET(GLSLParser glslang.y ${CMAKE_CURRENT_BINARY_DIR}/gen_glslang_tab.cpp - COMPILE_FLAGS - "--defines=${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h") -else(BISON_FOUND) - message("using custom command for bison on glslang.y") - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h - COMMAND ../../tools/bison.exe --defines=${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp.h -t glslang.y -o ${CMAKE_CURRENT_BINARY_DIR}/glslang_tab.cpp - MAIN_DEPENDENCY glslang.y - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - set(BISON_GLSLParser_OUTPUT_SOURCE glslang_tab.cpp) -endif(BISON_FOUND) - -add_library(glslang STATIC ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS}) - -install(TARGETS glslang - ARCHIVE DESTINATION lib) diff --git a/glslang/MachineIndependent/preprocessor/CMakeLists.txt b/glslang/MachineIndependent/preprocessor/CMakeLists.txt deleted file mode 100644 index 71ff687b8..000000000 --- a/glslang/MachineIndependent/preprocessor/CMakeLists.txt +++ /dev/null @@ -1,20 +0,0 @@ -cmake_minimum_required(VERSION 2.8) - -include_directories(. ..) -set(SOURCES - Pp.cpp - PpAtom.cpp - PpContext.cpp - PpMemory.cpp - PpScanner.cpp - PpSymbols.cpp - PpTokens.cpp) - -set(HEADERS - PpContext.h - PpTokens.h) - -add_library(Preprocessor STATIC ${SOURCES} ${HEADERS}) - -install(TARGETS Preprocessor - ARCHIVE DESTINATION lib) diff --git a/glslang/OSDependent/Windows/CMakeLists.txt b/glslang/OSDependent/Windows/CMakeLists.txt index b7ca878d7..b378be17d 100644 --- a/glslang/OSDependent/Windows/CMakeLists.txt +++ b/glslang/OSDependent/Windows/CMakeLists.txt @@ -2,7 +2,13 @@ cmake_minimum_required(VERSION 2.8) include_directories(. ../../../OGLCompilersDLL) -add_library(OSDependent STATIC ossource.cpp osinclude.h) +set(SOURCES ossource.cpp osinclude.h) + +add_library(OSDependent STATIC ${SOURCES}) + +if(WIN32) + source_group("Source" FILES ${SOURCES}) +endif(WIN32) install(TARGETS OSDependent ARCHIVE DESTINATION lib)