aboutsummaryrefslogtreecommitdiff
path: root/third_party
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2019-09-25 09:52:01 -0700
committerChris Forbes <chrisforbes@google.com>2019-09-25 09:52:01 -0700
commitf2f0ce29150b4d27898f7307c5b0ccc277700217 (patch)
treec3a685630728fcc97e17bc278d13aa2d24064438 /third_party
parentf4526ca42c8d4f357a5a69defc2690ad6653f401 (diff)
parent62ef3e4e056d80f848baadee745cc176f6252cc3 (diff)
downloadamber-f2f0ce29150b4d27898f7307c5b0ccc277700217.tar.gz
Merge commit '62ef3e4e056d80f848baadee745cc176f6252cc3' into HEAD
Bug: b/141615251 Change-Id: I5e4c47fc878e7be943bb54ef8326d63f7816c2ed
Diffstat (limited to 'third_party')
-rw-r--r--third_party/CMakeLists.txt368
1 files changed, 97 insertions, 271 deletions
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
index 21d2856..db865ad 100644
--- a/third_party/CMakeLists.txt
+++ b/third_party/CMakeLists.txt
@@ -12,270 +12,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- # Turn off warnings to make gtest happy
- set(GTEST_BUILD_FIXES
- -Wno-covered-switch-default
- -Wno-deprecated
- -Wno-disabled-macro-expansion
- -Wno-exit-time-constructors
- -Wno-exit-time-destructors
- -Wno-extra-semi-stmt
- -Wno-global-constructors
- -Wno-missing-field-initializers
- -Wno-format-nonliteral
- -Wno-missing-noreturn
- -Wno-missing-prototypes
- -Wno-missing-variable-declarations
- -Wno-shift-sign-overflow
- -Wno-sign-conversion
- -Wno-undef
- -Wno-unused-member-function
- -Wno-used-but-marked-unused
- -Wno-weak-vtables
- -Wno-zero-as-null-pointer-constant)
-
- set(GLSLANG_BUILD_FIXES
- -Wno-conversion
- -Wno-covered-switch-default
- -Wno-date-time
- -Wno-deprecated
- -Wno-disabled-macro-expansion
- -Wno-double-promotion
- -Wno-error
- -Wno-exit-time-destructors
- -Wno-extra-semi
- -Wno-extra-semi-stmt
- -Wno-float-equal
- -Wno-format-nonliteral
- -Wno-format-pedantic
- -Wno-global-constructors
- -Wno-gnu-redeclared-enum
- -Wno-implicit-fallthrough
- -Wno-inconsistent-missing-destructor-override
- -Wno-missing-field-initializers
- -Wno-missing-noreturn
- -Wno-missing-prototypes
- -Wno-missing-variable-declarations
- -Wno-newline-eof
- -Wno-old-style-cast
- -Wno-reserved-id-macro
- -Wno-shadow
- -Wno-shadow-field
- -Wno-shadow-field-in-constructor
- -Wno-shift-sign-overflow
- -Wno-sign-conversion
- -Wno-signed-enum-bitfield
- -Wno-undef
- -Wno-undefined-func-template
- -Wno-undefined-reinterpret-cast
- -Wno-unreachable-code
- -Wno-unreachable-code-break
- -Wno-unreachable-code-return
- -Wno-unused-macros
- -Wno-unused-parameter
- -Wno-unused-variable
- -Wno-used-but-marked-unused
- -Wno-weak-vtables
- -Wno-zero-as-null-pointer-constant)
-
- set(LODEPNG_BUILD_FIXES
- -Wno-cast-qual
- -Wno-conversion
- -Wno-covered-switch-default
- -Wno-deprecated
- -Wno-extra-semi-stmt
- -Wno-implicit-int-conversion
- -Wno-missing-prototypes
- -Wno-old-style-cast
- -Wno-shorten-64-to-32
- -Wno-weak-vtables
- -Wno-zero-as-null-pointer-constant)
-
- set(SPIRV_TOOLS_BUILD_FIXES
- -Wno-conditional-uninitialized
- -Wno-covered-switch-default
- -Wno-deprecated
- -Wno-documentation
- -Wno-documentation-pedantic
- -Wno-double-promotion
- -Wno-extra-semi
- -Wno-extra-semi-stmt
- -Wno-float-equal
- -Wno-format-nonliteral
- -Wno-implicit-fallthrough
- -Wno-missing-prototypes
- -Wno-old-style-cast
- -Wno-range-loop-analysis
- -Wno-shift-sign-overflow
- -Wno-unreachable-code-break
- -Wno-unreachable-code-return
- -Wno-unused-member-function
- -Wno-weak-vtables
- -Wno-zero-as-null-pointer-constant)
-
- set(SHADERC_BUILD_FIXES
- -Wno-comma
- -Wno-conversion
- -Wno-covered-switch
- -Wno-covered-switch-default
- -Wno-deprecated
- -Wno-disabled-macro-expansion
- -Wno-double-promotion
- -Wno-extra-semi
- -Wno-float-equal
- -Wno-global-constructors
- -Wno-inconsistent-missing-destructor-override
- -Wno-missing-field-initializers
- -Wno-missing-prototypes
- -Wno-newline-eof
- -Wno-old-style-cast
- -Wno-reserved-id-macro
- -Wno-shadow
- -Wno-shadow-field
- -Wno-shadow-field-in-constructor
- -Wno-shadow-uncaptured-local
- -Wno-sign-conversion
- -Wno-signed-enum-bitfield
- -Wno-undef
- -Wno-unreachable-code-return
- -Wno-weak-vtables
- -Wno-zero-as-null-pointer-constant
- )
-
- set(VULKAN_LOADER_BUILD_FIXES
- -Wno-unknown-warning-option
- )
-endif()
-
-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
- set(GTEST_BUILD_FIXES "")
-
- set(GLSLANG_BUILD_FIXES
- -Wno-error
- -Wno-implicit-fallthrough
- -Wno-overflow
- -Wno-missing-field-initializers
- -Wno-pedantic
- -Wno-strict-aliasing
- -Wno-unused-parameter
- -Wno-unused-variable)
-
- set(LODEPNG_BUILD_FIXES "")
-
- set(SPIRV_TOOLS_BUILD_FIXES "")
-
- set(SHADERC_BUILD_FIXES
- -Wno-missing-field-initializers
- -Wno-pedantic)
-
- set(VULKAN_LOADER_BUILD_FIXES "")
-endif()
-
-if (MSVC)
- set(GTEST_BUILD_FIXES
- /W3
- /wd4061
- /wd4365
- /wd4514
- /wd4571
- /wd4623
- /wd4625
- /wd4626
- /wd4668
- /wd4710
- /wd4774
- /wd4820
- /wd5026
- /wd5027
- /wd5039
- /wd5045)
-
- set(GLSLANG_BUILD_FIXES
- /W3
- /wd4242
- /wd4244
- /wd4571
- /wd4623
- /wd4625
- /wd4626
- /wd4702
- /wd4774
- /wd4820
- /wd4946
- /wd4996
- /wd5026
- /wd5027
- /wd5045)
-
- set(LODEPNG_BUILD_FIXES
- /W3
- /wd4267)
-
- set(SPIRV_TOOLS_BUILD_FIXES
- /W3
- /wd4365
- /wd4389
- /wd4571
- /wd4623
- /wd4625
- /wd4626
- /wd4702
- /wd4706
- /wd4710
- /wd4774
- /wd4820
- /wd4826
- /wd4868
- /wd5026
- /wd5027
- /wd5045)
-
- set(SHADERC_BUILD_FIXES
- /W3
- /wd4365
- /wd4571
- /wd4623
- /wd4625
- /wd4626
- /wd4702
- /wd4774
- /wd4820
- /wd4996
- /wd5026
- /wd5027
- /wd5039
- /wd5045)
-
- set(VULKAN_LOADER_BUILD_FIXES
- /W3
- )
-endif()
-
if (${AMBER_ENABLE_TESTS})
- set(CXX_BACK ${CMAKE_CXX_FLAGS})
- SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "${GTEST_BUILD_FIXES}")
- STRING(REGEX REPLACE ";" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ if (${AMBER_ENABLE_SHARED_CRT})
+ set(gtest_force_shared_crt ON)
+ endif()
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/googletest EXCLUDE_FROM_ALL)
- set(CMAKE_CXX_FLAGS ${CXX_BACK})
endif()
if (${AMBER_ENABLE_SPIRV_TOOLS})
- set(CXX_BACK ${CMAKE_CXX_FLAGS})
- SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "${SPIRV_TOOLS_BUILD_FIXES}")
- STRING(REGEX REPLACE ";" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
set(SPIRV-Headers_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/spirv-headers CACHE STRING "")
set(SPIRV_SKIP_TESTS ON CACHE BOOL ON)
- set(SPIRV_SKIP_EXECUTABLES ON CACHE BOOL ON)
- set(SPIRV_HEADERS_SKIP_EXAMPLES ON CACHE BOOL ON)
- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools)
- set(CMAKE_CXX_FLAGS ${CXX_BACK})
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools EXCLUDE_FROM_ALL)
endif()
if (${AMBER_ENABLE_SHADERC})
- set(CXX_BACK ${CMAKE_CXX_FLAGS})
- SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "${GLSLANG_BUILD_FIXES}")
- STRING(REGEX REPLACE ";" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
set(ENABLE_HLSL ON CACHE BOOL ON)
set(BUILD_TESTING FALSE CACHE BOOL ON)
set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL ON)
@@ -285,38 +35,114 @@ if (${AMBER_ENABLE_SHADERC})
set(LLVM_USE_CRT_RELEASE MT CACHE STRING "")
set(LLVM_USE_CRT_RELWITHDEBINFO MT CACHE STRING "")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/glslang)
- set(CMAKE_CXX_FLAGS ${CXX_BACK})
- set(CXX_BACK ${CMAKE_CXX_FLAGS})
- SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "${SHADERC_BUILD_FIXES}")
- STRING(REGEX REPLACE ";" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
set(SHADERC_THIRD_PARTY_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE STRING "")
set(SHADERC_SKIP_TESTS ON CACHE BOOL ON)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/shaderc)
- set(CMAKE_CXX_FLAGS ${CXX_BACK})
endif()
-if (${AMBER_ENABLE_SAMPLES})
+if (${AMBER_ENABLE_SAMPLES} AND ${AMBER_ENABLE_LODEPNG})
# Lodepng
set(LODEPNG_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/lodepng/lodepng.cpp)
- STRING(REGEX REPLACE ";" " " LODEPNG_BUILD_FIXES "${LODEPNG_BUILD_FIXES}")
-
- set_source_files_properties(
- ${LODEPNG_SOURCES}
- PROPERTIES
- COMPILE_FLAGS "${LODEPNG_BUILD_FIXES}")
-
add_library(lodepng STATIC ${LODEPNG_SOURCES})
endif()
if (${AMBER_USE_LOCAL_VULKAN})
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/vulkan-headers)
- set(CXX_BACK ${CMAKE_CXX_FLAGS})
- SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "${VULKAN_LOADER_BUILD_FIXES}")
- STRING(REGEX REPLACE ";" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
set(BUILD_TESTS FALSE)
+
+ # The vulkan-loader CMake file assumes that directory exists if
+ # Wayland support is to be built.
+ if(NOT EXISTS ${WAYLAND_CLIENT_INCLUDE_DIR})
+ message(STATUS "Amber: Disabling Wayland support in Vulkan-Loader")
+ set(BUILD_WSI_WAYLAND_SUPPORT OFF CACHE BOOL "" FORCE)
+ endif()
+ message(STATUS "Amber: Disabling X11 support in Vulkan-Loader")
+ set(BUILD_WSI_XLIB_SUPPORT OFF CACHE BOOL "" FORCE)
+
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/vulkan-loader)
- set(CMAKE_CXX_FLAGS ${CXX_BACK})
endif()
+if (${AMBER_ENABLE_SWIFTSHADER})
+ set(BUILD_EGL FALSE CACHE BOOL FALSE)
+ set(BUILD_GLESv2 FALSE CACHE BOOL FALSE)
+ set(BUILD_GLES_CM FALSE CACHE BOOL FALSE)
+ set(BUILD_VULKAN TRUE CACHE BOOL TRUE)
+ set(BUILD_SAMPLES FALSE CACHE BOOL FALSE)
+ set(BUILD_TESTS FALSE CACHE BOOL FALSE)
+ set(WARNINGS_AS_ERRORS FALSE CACHE BOOL FALSE)
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/swiftshader)
+endif()
+
+if (${AMBER_ENABLE_DXC})
+ set(DXC_EXTERNAL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE STRING "" FORCE)
+ set(DXC_SPIRV_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/spirv-headers" CACHE PATH "" FORCE)
+ set(DXC_SPIRV_TOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools" CACHE PATH "" FORCE)
+
+ set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "")
+ set(LLVM_APPEND_VC_REV ON CACHE BOOL "")
+ set(LLVM_DEFAULT_TARGET_TRIPLE "dxil-ms-dx" CACHE STRING "")
+ set(LLVM_ENABLE_EH ON CACHE BOOL "")
+ set(LLVM_ENABLE_RTTI ON CACHE BOOL "")
+ set(LLVM_BUILD_EXAMPLES OFF CACHE BOOL "")
+ set(LLVM_BUILD_TESTS ON CACHE BOOL "")
+ set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "")
+ set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "")
+ set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
+ set(LLVM_INCLUDE_TOOLS ON CACHE BOOL "")
+ set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "")
+ set(LLVM_USE_CRT_DEBUG MTd CACHE STRING "")
+ set(LLVM_USE_CRT_RELEASE MT CACHE STRING "")
+ set(LLVM_USE_CRT_RELWITHDEBINFO MT CACHE STRING "")
+
+ set(LLVM_OPTIMIZED_TABLEGEN OFF CACHE BOOL "")
+ set(LLVM_REQUIRES_EH ON CACHE BOOL "")
+ set(LLVM_REQUIRES_RTTI ON CACHE BOOL "")
+ set(LLVM_TARGETS_TO_BUILD None CACHE STRING "")
+ set(LIBCLANG_BUILD_STATIC ON CACHE BOOL "")
+ set(CLANG_BUILD_EXAMPLES OFF CACHE BOOL "")
+ set(CLANG_CL OFF CACHE BOOL "")
+ set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "")
+ set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "")
+ set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "")
+ set(HLSL_INCLUDE_TESTS OFF CACHE BOOL "")
+ set(ENABLE_SPIRV_CODEGEN ON CACHE BOOL "enable spirv codegen")
+ set(SPIRV_BUILD_TESTS OFF CACHE BOOL "Enable dxc spirv tests")
+
+ set(LLVM_BUILD_STATIC ON CACHE BOOL "")
+ set(BUILD_SHARED_LIBS OFF CACHE BOOL "")
+
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/dxc EXCLUDE_FROM_ALL)
+
+ if (MSVC)
+ add_custom_target(dxc-binary ALL
+ DEPENDS "${CMAKE_BINARY_DIR}/third_party/dxc/bin/dxcompiler.dll"
+ COMMENT "dxc-binary custom target")
+
+ ADD_CUSTOM_COMMAND(
+ TARGET dxc-binary
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy ${CMAKE_BINARY_DIR}/third_party/dxc/bin/dxcompiler.dll ${CMAKE_BINARY_DIR}
+ )
+ endif()
+endif()
+
+if (${AMBER_ENABLE_CLSPV})
+ set(CLSPV_LLVM_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/clspv-llvm" CACHE STRING "")
+ set(CLSPV_CLANG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/clspv-clang" CACHE STRING "")
+ set(SPIRV_HEADERS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/spirv-headers" CACHE STRING "")
+ set(SPIRV_TOOLS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools" CACHE STRING "")
+
+ set(LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN ON CACHE STRING "")
+ set(LLVM_BUILD_STATIC ON CACHE BOOL "")
+ set(LLVM_INCLUDE_BENCHMARKS OFF CACHE BOOL "")
+ set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "")
+ set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "")
+ set(LLVM_INCLUDE_GO_TESTS OFF CACHE BOOL "")
+ set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
+ set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "")
+
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/clspv)
+endif()