Merge pull request #2278 from ShabbyX/master
[platform/upstream/glslang.git] / StandAlone / CMakeLists.txt
1 add_library(glslang-default-resource-limits
2             ${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp
3             ${CMAKE_CURRENT_SOURCE_DIR}/resource_limits_c.cpp)
4 set_property(TARGET glslang-default-resource-limits PROPERTY FOLDER glslang)
5 set_property(TARGET glslang-default-resource-limits PROPERTY POSITION_INDEPENDENT_CODE ON)
6
7 target_include_directories(glslang-default-resource-limits
8                            PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
9                            PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>)
10
11
12 set(SOURCES StandAlone.cpp DirStackFileIncluder.h)
13
14 add_executable(glslangValidator ${SOURCES})
15 set_property(TARGET glslangValidator PROPERTY FOLDER tools)
16 glslang_set_link_args(glslangValidator)
17
18 set(LIBRARIES
19     glslang
20     SPIRV
21     glslang-default-resource-limits)
22
23 if(ENABLE_SPVREMAPPER)
24     set(LIBRARIES ${LIBRARIES} SPVRemapper)
25 endif()
26
27 if(WIN32)
28     set(LIBRARIES ${LIBRARIES} psapi)
29 elseif(UNIX)
30     if(NOT ANDROID)
31         set(LIBRARIES ${LIBRARIES} pthread)
32     endif()
33 endif(WIN32)
34
35 target_link_libraries(glslangValidator ${LIBRARIES})
36 target_include_directories(glslangValidator PUBLIC
37     $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
38     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
39
40 if(ENABLE_SPVREMAPPER)
41     set(REMAPPER_SOURCES spirv-remap.cpp)
42     add_executable(spirv-remap ${REMAPPER_SOURCES})
43     set_property(TARGET spirv-remap PROPERTY FOLDER tools)
44     glslang_set_link_args(spirv-remap)
45     target_link_libraries(spirv-remap ${LIBRARIES})
46 endif()
47
48 if(WIN32)
49     source_group("Source" FILES ${SOURCES})
50 endif(WIN32)
51
52 if(ENABLE_GLSLANG_INSTALL)
53     install(TARGETS glslangValidator EXPORT glslangValidatorTargets
54             RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
55     install(EXPORT glslangValidatorTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
56
57     if(ENABLE_SPVREMAPPER)
58         install(TARGETS spirv-remap EXPORT spirv-remapTargets
59             RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
60         install(EXPORT spirv-remapTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
61     endif()
62
63     if(BUILD_SHARED_LIBS)
64         install(TARGETS glslang-default-resource-limits EXPORT glslang-default-resource-limitsTargets
65                 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
66         install(EXPORT glslang-default-resource-limitsTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
67     endif()
68 endif(ENABLE_GLSLANG_INSTALL)