Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
22be5788
Commit
22be5788
authored
Apr 30, 2017
by
John Kessenich
Committed by
GitHub
Apr 30, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #870 from SoapGentoo/cmake-fixes
Modernise CMake #2
parents
eb9a532b
22afc38b
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
143 additions
and
129 deletions
+143
-129
CMakeLists.txt
CMakeLists.txt
+34
-21
CMakeLists.txt
External/CMakeLists.txt
+31
-30
CMakeLists.txt
OGLCompilersDLL/CMakeLists.txt
+3
-3
CMakeLists.txt
SPIRV/CMakeLists.txt
+4
-4
CMakeLists.txt
StandAlone/CMakeLists.txt
+6
-8
CMakeLists.txt
glslang/CMakeLists.txt
+5
-5
CMakeLists.txt
glslang/OSDependent/Unix/CMakeLists.txt
+3
-3
CMakeLists.txt
glslang/OSDependent/Windows/CMakeLists.txt
+4
-4
CMakeLists.txt
gtests/CMakeLists.txt
+50
-48
CMakeLists.txt
hlsl/CMakeLists.txt
+3
-3
No files found.
CMakeLists.txt
View file @
22be5788
cmake_minimum_required
(
VERSION 2.8.11
)
# increase to 3.1 once all major distributions
# include a version of CMake >= 3.1
cmake_minimum_required
(
VERSION 2.8.12
)
set_property
(
GLOBAL PROPERTY USE_FOLDERS ON
)
# Adhere to GNU filesystem layout conventions
include
(
GNUInstallDirs
)
option
(
ENABLE_AMD_EXTENSIONS
"Enables support of AMD-specific extensions"
ON
)
option
(
ENABLE_GLSLANG_BINARIES
"Builds glslangValidator and spirv-remap"
ON
)
...
...
@@ -8,11 +13,13 @@ option(ENABLE_NV_EXTENSIONS "Enables support of Nvidia-specific extensions" ON)
option
(
ENABLE_HLSL
"Enables HLSL input support"
ON
)
enable_testing
(
)
set
(
CMAKE_INSTALL_PREFIX
"install"
CACHE STRING
"prefix"
)
if
(
CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND WIN32
)
set
(
CMAKE_INSTALL_PREFIX
"install"
CACHE STRING
"..."
FORCE
)
endif
(
)
project
(
glslang
)
# make testing optional
include
(
CTest
)
if
(
ENABLE_AMD_EXTENSIONS
)
add_definitions
(
-DAMD_EXTENSIONS
)
...
...
@@ -33,33 +40,39 @@ if(WIN32)
endif
(
MSVC
)
add_definitions
(
-DGLSLANG_OSINCLUDE_WIN32
)
elseif
(
UNIX
)
add_definitions
(
-fPIC
)
add_definitions
(
-DGLSLANG_OSINCLUDE_UNIX
)
else
(
WIN32
)
message
(
"unknown platform"
)
endif
(
WIN32
)
if
(
CMAKE_COMPILER_IS_GNUCXX
)
add_definitions
(
-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs
-Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable
)
add_definitions
(
-Wno-reorder
)
# disable this from -Wall, since it happens all over.
add_definitions
(
-std=c++11
)
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
)
add_compile_options
(
-Wno-reorder
)
# disable this from -Wall, since it happens all over.
elseif
(
${
CMAKE_CXX_COMPILER_ID
}
MATCHES
"Clang"
)
add_definitions
(
-Wall -Wuninitialized -Wunused -Wunused-local-typedefs
-Wunused-parameter -Wunused-value -Wunused-variable
)
add_definitions
(
-Wno-reorder
)
# disable this from -Wall, since it happens all over.
add_definitions
(
-std=c++11
)
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.
endif
()
# Request C++11
if
(
${
CMAKE_VERSION
}
VERSION_LESS 3.1
)
# CMake versions before 3.1 do not understand CMAKE_CXX_STANDARD
# remove this block once CMake >=3.1 has fixated in the ecosystem
add_compile_options
(
-std=c++11
)
else
()
set
(
CMAKE_CXX_STANDARD 11
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
set
(
CMAKE_CXX_EXTENSIONS OFF
)
endif
()
function
(
glslang_set_link_args TARGET
)
# For MinGW compiles, statically link against the GCC and C++ runtimes.
# This avoids the need to ship those runtimes as DLLs.
if
(
WIN32
)
if
(
${
CMAKE_CXX_COMPILER_ID
}
MATCHES
"GNU"
)
set_target_properties
(
${
TARGET
}
PROPERTIES
LINK_FLAGS
"-static -static-libgcc -static-libstdc++"
)
endif
()
endif
(
WIN32
)
if
(
WIN32 AND
${
CMAKE_CXX_COMPILER_ID
}
MATCHES
"GNU"
)
set_target_properties
(
${
TARGET
}
PROPERTIES
LINK_FLAGS
"-static -static-libgcc -static-libstdc++"
)
endif
()
endfunction
(
glslang_set_link_args
)
# We depend on these for later projects, so they should come first.
...
...
@@ -68,7 +81,7 @@ add_subdirectory(External)
add_subdirectory
(
glslang
)
add_subdirectory
(
OGLCompilersDLL
)
if
(
ENABLE_GLSLANG_BINARIES
)
add_subdirectory
(
StandAlone
)
add_subdirectory
(
StandAlone
)
endif
()
add_subdirectory
(
SPIRV
)
if
(
ENABLE_HLSL
)
...
...
External/CMakeLists.txt
View file @
22be5788
# Suppress all warnings from external projects.
set_property
(
DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w
)
if
(
TARGET gmock
)
message
(
STATUS
"Google Mock already configured - use it"
)
elseif
(
IS_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
/googletest
)
# We need to make sure Google Test does not mess up with the
# global CRT settings on Windows.
if
(
WIN32
)
set
(
gtest_force_shared_crt ON CACHE BOOL
""
FORCE
)
endif
(
WIN32
)
add_subdirectory
(
googletest
)
set
(
GTEST_TARGETS
gtest
gtest_main
gmock
gmock_main
)
foreach
(
target
${
GTEST_TARGETS
}
)
set_property
(
TARGET
${
target
}
PROPERTY FOLDER gtest
)
endforeach
()
mark_as_advanced
(
gmock_build_tests
BUILD_GMOCK
BUILD_GTEST
BUILD_SHARED_LIBS
gtest_build_samples
gtest_build_tests
gtest_disable_pthreads
gtest_force_shared_crt
gtest_hide_internal_symbols
)
else
()
message
(
STATUS
"Google Mock was not found - tests based on that will not build"
)
if
(
BUILD_TESTING
)
if
(
TARGET gmock
)
message
(
STATUS
"Google Mock already configured - use it"
)
elseif
(
IS_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
/googletest
)
# We need to make sure Google Test does not mess up with the
# global CRT settings on Windows.
if
(
WIN32
)
set
(
gtest_force_shared_crt ON CACHE BOOL
""
FORCE
)
endif
(
WIN32
)
add_subdirectory
(
googletest
)
set
(
GTEST_TARGETS
gtest
gtest_main
gmock
gmock_main
)
foreach
(
target
${
GTEST_TARGETS
}
)
set_property
(
TARGET
${
target
}
PROPERTY FOLDER gtest
)
endforeach
()
mark_as_advanced
(
gmock_build_tests
BUILD_GMOCK
BUILD_GTEST
BUILD_SHARED_LIBS
gtest_build_samples
gtest_build_tests
gtest_disable_pthreads
gtest_force_shared_crt
gtest_hide_internal_symbols
)
else
()
message
(
STATUS
"Google Mock was not found - tests based on that will not build"
)
endif
()
endif
()
OGLCompilersDLL/CMakeLists.txt
View file @
22be5788
set
(
SOURCES InitializeDll.cpp InitializeDll.h
)
add_library
(
OGLCompiler STATIC
${
SOURCES
}
)
set_property
(
TARGET OGLCompiler PROPERTY FOLDER glslang
)
set_property
(
TARGET OGLCompiler PROPERTY FOLDER glslang
POSITION_INDEPENDENT_CODE ON
)
if
(
WIN32
)
source_group
(
"Source"
FILES
${
SOURCES
}
)
endif
(
WIN32
)
install
(
TARGETS OGLCompiler
ARCHIVE DESTINATION
lib
)
install
(
TARGETS OGLCompiler
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
SPIRV/CMakeLists.txt
View file @
22be5788
...
...
@@ -40,11 +40,11 @@ if(ENABLE_NV_EXTENSIONS)
endif
(
ENABLE_NV_EXTENSIONS
)
add_library
(
SPIRV STATIC
${
SOURCES
}
${
HEADERS
}
)
set_property
(
TARGET SPIRV PROPERTY FOLDER glslang
)
set_property
(
TARGET SPIRV PROPERTY FOLDER glslang
POSITION_INDEPENDENT_CODE ON
)
target_link_libraries
(
SPIRV glslang
)
add_library
(
SPVRemapper STATIC
${
SPVREMAP_SOURCES
}
${
SPVREMAP_HEADERS
}
)
set_property
(
TARGET SPVRemapper PROPERTY FOLDER glslang
)
set_property
(
TARGET SPVRemapper PROPERTY FOLDER glslang
POSITION_INDEPENDENT_CODE ON
)
if
(
WIN32
)
source_group
(
"Source"
FILES
${
SOURCES
}
${
HEADERS
}
)
...
...
@@ -52,6 +52,6 @@ if(WIN32)
endif
(
WIN32
)
install
(
TARGETS SPIRV SPVRemapper
ARCHIVE DESTINATION
lib
)
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
install
(
FILES
${
HEADERS
}
${
SPVREMAP_HEADERS
}
DESTINATION
include
/SPIRV/
)
install
(
FILES
${
HEADERS
}
${
SPVREMAP_HEADERS
}
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
/SPIRV/
)
StandAlone/CMakeLists.txt
View file @
22be5788
add_library
(
glslang-default-resource-limits
${
CMAKE_CURRENT_SOURCE_DIR
}
/ResourceLimits.cpp
)
set_property
(
TARGET glslang-default-resource-limits PROPERTY FOLDER glslang
)
${
CMAKE_CURRENT_SOURCE_DIR
}
/ResourceLimits.cpp
)
set_property
(
TARGET glslang-default-resource-limits PROPERTY FOLDER glslang POSITION_INDEPENDENT_CODE ON
)
target_include_directories
(
glslang-default-resource-limits
PUBLIC
${
CMAKE_CURRENT_SOURCE_DIR
}
PUBLIC
${
PROJECT_SOURCE_DIR
}
)
PUBLIC
${
CMAKE_CURRENT_SOURCE_DIR
}
PUBLIC
${
PROJECT_SOURCE_DIR
}
)
set
(
SOURCES StandAlone.cpp
)
set
(
REMAPPER_SOURCES spirv-remap.cpp
)
...
...
@@ -41,7 +39,7 @@ if(WIN32)
endif
(
WIN32
)
install
(
TARGETS glslangValidator
RUNTIME DESTINATION
bin
)
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
)
install
(
TARGETS spirv-remap
RUNTIME DESTINATION
bin
)
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
)
glslang/CMakeLists.txt
View file @
22be5788
...
...
@@ -81,10 +81,10 @@ set(HEADERS
# set(BISON_GLSLParser_OUTPUT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/MachineIndependent/glslang_tab.cpp)
add_library
(
glslang STATIC
${
BISON_GLSLParser_OUTPUT_SOURCE
}
${
SOURCES
}
${
HEADERS
}
)
set_property
(
TARGET glslang PROPERTY FOLDER glslang
)
set_property
(
TARGET glslang PROPERTY FOLDER glslang
POSITION_INDEPENDENT_CODE ON
)
target_link_libraries
(
glslang OGLCompiler OSDependent
)
if
(
ENABLE_HLSL
)
target_link_libraries
(
glslang HLSL
)
target_link_libraries
(
glslang HLSL
)
endif
()
if
(
WIN32
)
...
...
@@ -95,10 +95,10 @@ if(WIN32)
source_group
(
"MachineIndependent
\\
Preprocessor"
REGULAR_EXPRESSION
"MachineIndependent/preprocessor/*"
)
endif
(
WIN32
)
install
(
TARGETS glslang
ARCHIVE DESTINATION
lib
)
install
(
TARGETS glslang
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
foreach
(
file
${
HEADERS
}
)
get_filename_component
(
dir
${
file
}
DIRECTORY
)
install
(
FILES
${
file
}
DESTINATION
include
/glslang/
${
dir
}
)
install
(
FILES
${
file
}
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
/glslang/
${
dir
}
)
endforeach
()
glslang/OSDependent/Unix/CMakeLists.txt
View file @
22be5788
add_library
(
OSDependent STATIC ossource.cpp ../osinclude.h
)
set_property
(
TARGET OSDependent PROPERTY FOLDER glslang
)
set_property
(
TARGET OSDependent PROPERTY FOLDER glslang
POSITION_INDEPENDENT_CODE ON
)
install
(
TARGETS OSDependent
ARCHIVE DESTINATION
lib
)
install
(
TARGETS OSDependent
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
glslang/OSDependent/Windows/CMakeLists.txt
View file @
22be5788
set
(
SOURCES ossource.cpp ../osinclude.h
)
add_library
(
OSDependent STATIC
${
SOURCES
}
)
set_property
(
TARGET OSDependent PROPERTY FOLDER glslang
)
set_property
(
TARGET OSDependent PROPERTY FOLDER glslang
POSITION_INDEPENDENT_CODE ON
)
# MinGW GCC complains about function pointer casts to void*.
# Turn that off with -fpermissive.
if
(
${
CMAKE_CXX_COMPILER_ID
}
MATCHES
"GNU"
)
target_compile_options
(
OSDependent PRIVATE -fpermissive
)
target_compile_options
(
OSDependent PRIVATE -fpermissive
)
endif
()
if
(
WIN32
)
source_group
(
"Source"
FILES
${
SOURCES
}
)
endif
(
WIN32
)
install
(
TARGETS OSDependent
ARCHIVE DESTINATION
lib
)
install
(
TARGETS OSDependent
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
gtests/CMakeLists.txt
View file @
22be5788
if
(
TARGET gmock
)
message
(
STATUS
"Google Mock found - building tests"
)
if
(
BUILD_TESTING
)
if
(
TARGET gmock
)
message
(
STATUS
"Google Mock found - building tests"
)
set
(
TEST_SOURCES
# Framework related source files
${
CMAKE_CURRENT_SOURCE_DIR
}
/Initializer.h
${
CMAKE_CURRENT_SOURCE_DIR
}
/main.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Settings.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Settings.h
${
CMAKE_CURRENT_SOURCE_DIR
}
/TestFixture.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/TestFixture.h
set
(
TEST_SOURCES
# Framework related source files
${
CMAKE_CURRENT_SOURCE_DIR
}
/Initializer.h
${
CMAKE_CURRENT_SOURCE_DIR
}
/main.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Settings.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Settings.h
${
CMAKE_CURRENT_SOURCE_DIR
}
/TestFixture.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/TestFixture.h
# Test related source files
${
CMAKE_CURRENT_SOURCE_DIR
}
/AST.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/BuiltInResource.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Config.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/HexFloat.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Hlsl.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Link.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Link.FromFile.Vk.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Pp.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Spv.FromFile.cpp
# -- Remapper tests
${
CMAKE_CURRENT_SOURCE_DIR
}
/Remap.FromFile.cpp
)
# Test related source files
${
CMAKE_CURRENT_SOURCE_DIR
}
/AST.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/BuiltInResource.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Config.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/HexFloat.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Hlsl.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Link.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Link.FromFile.Vk.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Pp.FromFile.cpp
${
CMAKE_CURRENT_SOURCE_DIR
}
/Spv.FromFile.cpp
add_executable
(
glslangtests
${
TEST_SOURCES
}
)
set_property
(
TARGET glslangtests PROPERTY FOLDER tests
)
glslang_set_link_args
(
glslangtests
)
install
(
TARGETS glslangtests
RUNTIME DESTINATION bin
)
# -- Remapper tests
${
CMAKE_CURRENT_SOURCE_DIR
}
/Remap.FromFile.cpp
)
set
(
GLSLANG_TEST_DIRECTORY
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/../Test"
)
# Supply a default test root directory, so that manual testing
# doesn't have to specify the --test-root option in the normal
# case that you want to use the tests from the same source tree.
target_compile_definitions
(
glslangtests
PRIVATE GLSLANG_TEST_DIRECTORY=
"
${
GLSLANG_TEST_DIRECTORY
}
"
)
target_include_directories
(
glslangtests PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
${
PROJECT_SOURCE_DIR
}
${
gmock_SOURCE_DIR
}
/include
${
gtest_SOURCE_DIR
}
/include
)
add_executable
(
glslangtests
${
TEST_SOURCES
}
)
set_property
(
TARGET glslangtests PROPERTY FOLDER tests
)
glslang_set_link_args
(
glslangtests
)
install
(
TARGETS glslangtests
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
)
set
(
LIBRARIES
SPVRemapper glslang OSDependent OGLCompiler glslang
SPIRV glslang-default-resource-limits
)
if
(
ENABLE_HLSL
)
set
(
LIBRARIES
${
LIBRARIES
}
HLSL
)
endif
(
ENABLE_HLSL
)
target_link_libraries
(
glslangtests PRIVATE
${
LIBRARIES
}
gmock
)
set
(
GLSLANG_TEST_DIRECTORY
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/../Test"
)
# Supply a default test root directory, so that manual testing
# doesn't have to specify the --test-root option in the normal
# case that you want to use the tests from the same source tree.
target_compile_definitions
(
glslangtests
PRIVATE GLSLANG_TEST_DIRECTORY=
"
${
GLSLANG_TEST_DIRECTORY
}
"
)
target_include_directories
(
glslangtests PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
${
PROJECT_SOURCE_DIR
}
${
gmock_SOURCE_DIR
}
/include
${
gtest_SOURCE_DIR
}
/include
)
add_test
(
NAME glslang-gtests
COMMAND glslangtests --test-root
"
${
GLSLANG_TEST_DIRECTORY
}
"
)
set
(
LIBRARIES
SPVRemapper glslang OSDependent OGLCompiler glslang
SPIRV glslang-default-resource-limits
)
if
(
ENABLE_HLSL
)
set
(
LIBRARIES
${
LIBRARIES
}
HLSL
)
endif
(
ENABLE_HLSL
)
target_link_libraries
(
glslangtests PRIVATE
${
LIBRARIES
}
gmock
)
add_test
(
NAME glslang-gtests
COMMAND glslangtests --test-root
"
${
GLSLANG_TEST_DIRECTORY
}
"
)
endif
()
endif
()
hlsl/CMakeLists.txt
View file @
22be5788
...
...
@@ -7,7 +7,7 @@ set(SOURCES
hlslGrammar.cpp
hlslParseables.cpp
)
set
(
HEADERS
set
(
HEADERS
hlslAttributes.h
hlslParseHelper.h
hlslTokens.h
...
...
@@ -18,11 +18,11 @@ set(SOURCES
hlslParseables.h
)
add_library
(
HLSL STATIC
${
SOURCES
}
${
HEADERS
}
)
set_property
(
TARGET HLSL PROPERTY FOLDER hlsl
)
set_property
(
TARGET HLSL PROPERTY FOLDER hlsl
POSITION_INDEPENDENT_CODE ON
)
if
(
WIN32
)
source_group
(
"Source"
FILES
${
SOURCES
}
${
HEADERS
}
)
endif
(
WIN32
)
install
(
TARGETS HLSL
ARCHIVE DESTINATION
lib
)
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment