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
This commit is contained in:
John Kessenich 2014-03-31 00:06:32 +00:00
parent e564fc5e85
commit fde703438f
8 changed files with 147 additions and 133 deletions

View File

@ -7,20 +7,11 @@ project(glslang)
if(WIN32) if(WIN32)
set(CMAKE_GENERATOR_TOOLSET "v110" CACHE STRING "Platform Toolset" FORCE) set(CMAKE_GENERATOR_TOOLSET "v110" CACHE STRING "Platform Toolset" FORCE)
include(ChooseMSVCCRT.cmake) 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) elseif(UNIX)
add_subdirectory(glslang/OSDependent/Linux)
else(WIN32) else(WIN32)
message("unkown platform") message("unkown platform")
endif(WIN32) endif(WIN32)
add_subdirectory(glslang/MachineIndependent) add_subdirectory(glslang)
add_subdirectory(glslang/MachineIndependent/preprocessor)
add_subdirectory(glslang/GenericCodeGen)
add_subdirectory(OGLCompilersDLL) add_subdirectory(OGLCompilersDLL)
add_subdirectory(StandAlone) add_subdirectory(StandAlone)

View File

@ -6,10 +6,16 @@ if(WIN32)
elseif(UNIX) elseif(UNIX)
include_directories(${include_directories} ../glslang/OSDependent/Linux) include_directories(${include_directories} ../glslang/OSDependent/Linux)
else(WIN32) else(WIN32)
message("unkown platform") message("unknown platform")
endif(WIN32) 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 install(TARGETS OGLCompiler
ARCHIVE DESTINATION lib) ARCHIVE DESTINATION lib)

View File

@ -1,30 +1,34 @@
cmake_minimum_required(VERSION 2.8) cmake_minimum_required(VERSION 2.8)
include_directories(.) include_directories(.)
if(WIN32) if(WIN32)
include_directories(${include_directories} ../glslang/OSDependent/Windows) include_directories(${include_directories} ../glslang/OSDependent/Windows)
elseif(UNIX) elseif(UNIX)
include_directories(${include_directories} ../glslang/OSDependent/Linux) include_directories(${include_directories} ../glslang/OSDependent/Linux)
else(WIN32) else(WIN32)
message("unkown platform") message("unkown platform")
endif(WIN32) endif(WIN32)
add_executable(glslangValidator StandAlone.cpp) set(SOURCES StandAlone.cpp)
set(LIBRARIES add_executable(glslangValidator ${SOURCES})
glslang
GenericCodeGen set(LIBRARIES
OSDependent glslang
Preprocessor OGLCompiler
OGLCompiler) OSDependent)
if(WIN32) if(WIN32)
set(LIBRARIES ${LIBRARIES} psapi) set(LIBRARIES ${LIBRARIES} psapi)
elseif(UNIX) elseif(UNIX)
set(LIBRARIES ${LIBRARIES} pthread) set(LIBRARIES ${LIBRARIES} pthread)
endif(WIN32) endif(WIN32)
target_link_libraries(glslangValidator ${LIBRARIES}) target_link_libraries(glslangValidator ${LIBRARIES})
install(TARGETS glslangValidator if(WIN32)
RUNTIME DESTINATION bin) source_group("Source" FILES ${SOURCES})
endif(WIN32)
install(TARGETS glslangValidator
RUNTIME DESTINATION bin)

97
glslang/CMakeLists.txt Normal file
View File

@ -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)

View File

@ -1,7 +0,0 @@
cmake_minimum_required(VERSION 2.8)
include_directories(. ..)
set(SOURCES CodeGen.cpp Link.cpp)
add_library(GenericCodeGen STATIC ${SOURCES})

View File

@ -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)

View File

@ -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)

View File

@ -2,7 +2,13 @@ cmake_minimum_required(VERSION 2.8)
include_directories(. ../../../OGLCompilersDLL) 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 install(TARGETS OSDependent
ARCHIVE DESTINATION lib) ARCHIVE DESTINATION lib)