summaryrefslogtreecommitdiff
path: root/src/external/rawspeed/cmake/Modules
diff options
context:
space:
mode:
authorDavid Bremner <bremner@debian.org>2018-12-25 22:44:44 +0900
committerDavid Bremner <bremner@debian.org>2018-12-25 22:44:44 +0900
commit33cc53ba511843ac9857470e74e043013d3620fe (patch)
treeebc0e94b5486710fc2f381d92fab9a594f1dc62c /src/external/rawspeed/cmake/Modules
parent1fddb41abdd4ca3be5bfdfe019e126b188879e15 (diff)
Importing darktable_2.6.0.orig.tar.xz
Diffstat (limited to 'src/external/rawspeed/cmake/Modules')
-rw-r--r--src/external/rawspeed/cmake/Modules/CheckZLIB.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/FindLLVMAr.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/FindLLVMCXXFilt.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/FindLLVMClangTidy.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/FindLLVMCov.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/FindLLVMLLD.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/FindLLVMNm.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/FindLLVMObjCopy.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/FindLLVMObjDump.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/FindLLVMProfData.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/FindLLVMRanLib.cmake2
-rw-r--r--src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake10
-rw-r--r--src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake.in17
-rw-r--r--src/external/rawspeed/cmake/Modules/GoogleTest.cmake10
-rw-r--r--src/external/rawspeed/cmake/Modules/GoogleTest.cmake.in15
-rw-r--r--src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake71
-rw-r--r--src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake.in52
-rw-r--r--src/external/rawspeed/cmake/Modules/Pugixml.cmake10
-rw-r--r--src/external/rawspeed/cmake/Modules/Pugixml.cmake.in15
-rw-r--r--src/external/rawspeed/cmake/Modules/Zlib.cmake14
-rw-r--r--src/external/rawspeed/cmake/Modules/Zlib.cmake.in11
21 files changed, 191 insertions, 56 deletions
diff --git a/src/external/rawspeed/cmake/Modules/CheckZLIB.cmake b/src/external/rawspeed/cmake/Modules/CheckZLIB.cmake
index 413b550ca..97d70cef8 100644
--- a/src/external/rawspeed/cmake/Modules/CheckZLIB.cmake
+++ b/src/external/rawspeed/cmake/Modules/CheckZLIB.cmake
@@ -3,6 +3,8 @@ include(CheckTypeSize)
include(CheckPrototypeDefinition)
include(CheckCXXSymbolExists)
+enable_language(C)
+
set(CMAKE_REQUIRED_INCLUDES_SAVE "${CMAKE_REQUIRED_INCLUDES}")
set(CMAKE_EXTRA_INCLUDE_FILES_SAVE "${CMAKE_EXTRA_INCLUDE_FILES}")
set(CMAKE_REQUIRED_LIBRARIES_SAVE "${CMAKE_REQUIRED_LIBRARIES}")
diff --git a/src/external/rawspeed/cmake/Modules/FindLLVMAr.cmake b/src/external/rawspeed/cmake/Modules/FindLLVMAr.cmake
index aca7db536..4f5a90c20 100644
--- a/src/external/rawspeed/cmake/Modules/FindLLVMAr.cmake
+++ b/src/external/rawspeed/cmake/Modules/FindLLVMAr.cmake
@@ -1,4 +1,4 @@
-find_program(LLVMAR_EXECUTABLE NAMES llvm-ar llvm-ar-6.0 llvm-ar-5.0 llvm-ar-4.0)
+find_program(LLVMAR_EXECUTABLE NAMES llvm-ar llvm-ar-7 llvm-ar-6.0 llvm-ar-5.0 llvm-ar-4.0 llvm-ar-3.9)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LLVMAr
diff --git a/src/external/rawspeed/cmake/Modules/FindLLVMCXXFilt.cmake b/src/external/rawspeed/cmake/Modules/FindLLVMCXXFilt.cmake
index 4cc093f09..2381d8df4 100644
--- a/src/external/rawspeed/cmake/Modules/FindLLVMCXXFilt.cmake
+++ b/src/external/rawspeed/cmake/Modules/FindLLVMCXXFilt.cmake
@@ -1,5 +1,5 @@
find_program(LLVMCXXFilt_EXECUTABLE
- NAMES llvm-cxxfilt llvm-cxxfilt-6.0 llvm-cxxfilt-5.0 llvm-cxxfilt-4.0
+ NAMES llvm-cxxfilt llvm-cxxfilt-7 llvm-cxxfilt-6.0 llvm-cxxfilt-5.0 llvm-cxxfilt-4.0 llvm-cxxfilt-3.9
DOC "The llvm-cxxfilt executable"
)
diff --git a/src/external/rawspeed/cmake/Modules/FindLLVMClangTidy.cmake b/src/external/rawspeed/cmake/Modules/FindLLVMClangTidy.cmake
index 019b20c3b..3f3fb7f34 100644
--- a/src/external/rawspeed/cmake/Modules/FindLLVMClangTidy.cmake
+++ b/src/external/rawspeed/cmake/Modules/FindLLVMClangTidy.cmake
@@ -1,4 +1,4 @@
-find_program(CLANGTIDY_PATH NAMES clang-tidy clang-tidy-6.0)
+find_program(CLANGTIDY_PATH NAMES clang-tidy clang-tidy-7 clang-tidy-6.0 clang-tidy-5.0 clang-tidy-4.0 clang-tidy-3.9)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LLVMClangTidy
diff --git a/src/external/rawspeed/cmake/Modules/FindLLVMCov.cmake b/src/external/rawspeed/cmake/Modules/FindLLVMCov.cmake
index f8104959e..594c79a57 100644
--- a/src/external/rawspeed/cmake/Modules/FindLLVMCov.cmake
+++ b/src/external/rawspeed/cmake/Modules/FindLLVMCov.cmake
@@ -1,4 +1,4 @@
-find_program(LLVMCOV_PATH NAMES llvm-cov)
+find_program(LLVMCOV_PATH NAMES llvm-cov llvm-cov-7 llvm-cov-6.0 llvm-cov-5.0 llvm-cov-4.0 llvm-cov-3.9)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LLVMCov
diff --git a/src/external/rawspeed/cmake/Modules/FindLLVMLLD.cmake b/src/external/rawspeed/cmake/Modules/FindLLVMLLD.cmake
index 6e8574dfd..8016089e9 100644
--- a/src/external/rawspeed/cmake/Modules/FindLLVMLLD.cmake
+++ b/src/external/rawspeed/cmake/Modules/FindLLVMLLD.cmake
@@ -1,4 +1,4 @@
-find_program(LLVMLLD_EXECUTABLE NAMES ld.lld lld lld-6.0 lld-5.0)
+find_program(LLVMLLD_EXECUTABLE NAMES ld.lld lld lld-7 lld-6.0 lld-5.0 lld-4.0 lld-3.9)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LLVMLLD
diff --git a/src/external/rawspeed/cmake/Modules/FindLLVMNm.cmake b/src/external/rawspeed/cmake/Modules/FindLLVMNm.cmake
index 2872424e0..f92c4cbe5 100644
--- a/src/external/rawspeed/cmake/Modules/FindLLVMNm.cmake
+++ b/src/external/rawspeed/cmake/Modules/FindLLVMNm.cmake
@@ -1,4 +1,4 @@
-find_program(LLVMNM_EXECUTABLE NAMES llvm-nm llvm-nm-6.0 llvm-nm-5.0 llvm-nm-4.0)
+find_program(LLVMNM_EXECUTABLE NAMES llvm-nm llvm-nm-7 llvm-nm-6.0 llvm-nm-5.0 llvm-nm-4.0 llvm-nm-3.9)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LLVMNm
diff --git a/src/external/rawspeed/cmake/Modules/FindLLVMObjCopy.cmake b/src/external/rawspeed/cmake/Modules/FindLLVMObjCopy.cmake
index 1eab8fd4e..f8c65de44 100644
--- a/src/external/rawspeed/cmake/Modules/FindLLVMObjCopy.cmake
+++ b/src/external/rawspeed/cmake/Modules/FindLLVMObjCopy.cmake
@@ -1,4 +1,4 @@
-find_program(LLVMOBJCOPY_EXECUTABLE NAMES llvm-objcopy llvm-objcopy-6.0)
+find_program(LLVMOBJCOPY_EXECUTABLE NAMES llvm-objcopy llvm-objcopy-7 llvm-objcopy-6.0 llvm-objcopy-5.0 llvm-objcopy-4.0 llvm-objcopy-3.9)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LLVMObjCopy
diff --git a/src/external/rawspeed/cmake/Modules/FindLLVMObjDump.cmake b/src/external/rawspeed/cmake/Modules/FindLLVMObjDump.cmake
index 59abf7f25..2810ac002 100644
--- a/src/external/rawspeed/cmake/Modules/FindLLVMObjDump.cmake
+++ b/src/external/rawspeed/cmake/Modules/FindLLVMObjDump.cmake
@@ -1,4 +1,4 @@
-find_program(LLVMOBJDUMP_EXECUTABLE NAMES llvm-objdump llvm-objdump-6.0 llvm-objdump-5.0 llvm-objdump-4.0)
+find_program(LLVMOBJDUMP_EXECUTABLE NAMES llvm-objdump llvm-objdump-7 llvm-objdump-6.0 llvm-objdump-5.0 llvm-objdump-4.0 llvm-objdump-3.9)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LLVMObjDump
diff --git a/src/external/rawspeed/cmake/Modules/FindLLVMProfData.cmake b/src/external/rawspeed/cmake/Modules/FindLLVMProfData.cmake
index 72ca5a861..b92b9420e 100644
--- a/src/external/rawspeed/cmake/Modules/FindLLVMProfData.cmake
+++ b/src/external/rawspeed/cmake/Modules/FindLLVMProfData.cmake
@@ -1,4 +1,4 @@
-find_program(LLVMPROFDATA_PATH NAMES llvm-profdata)
+find_program(LLVMPROFDATA_PATH NAMES llvm-profdata llvm-profdata-7 llvm-profdata-6.0 llvm-profdata-5.0 llvm-profdata-4.0 llvm-profdata-3.9)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LLVMProfData
diff --git a/src/external/rawspeed/cmake/Modules/FindLLVMRanLib.cmake b/src/external/rawspeed/cmake/Modules/FindLLVMRanLib.cmake
index 5db031194..860917a18 100644
--- a/src/external/rawspeed/cmake/Modules/FindLLVMRanLib.cmake
+++ b/src/external/rawspeed/cmake/Modules/FindLLVMRanLib.cmake
@@ -1,4 +1,4 @@
-find_program(LLVMRANLIB_EXECUTABLE NAMES llvm-ranlib llvm-ranlib-6.0 llvm-ranlib-5.0 llvm-ranlib-4.0)
+find_program(LLVMRANLIB_EXECUTABLE NAMES llvm-ranlib llvm-ranlib-7 llvm-ranlib-6.0 llvm-ranlib-5.0 llvm-ranlib-4.0 llvm-ranlib-3.9)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LLVMRanLib
diff --git a/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake b/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake
index 15d4d004e..7fa38528c 100644
--- a/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake
+++ b/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake
@@ -1,7 +1,3 @@
-cmake_minimum_required(VERSION 3.0)
-
-project(googlebenchmark NONE)
-
# Download and unpack googlebenchmark at configure time
configure_file(${RAWSPEED_SOURCE_DIR}/cmake/Modules/GoogleBenchmark.cmake.in ${CMAKE_BINARY_DIR}/googlebenchmark/CMakeLists.txt @ONLY)
@@ -44,9 +40,11 @@ set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE_SAVE "${CMAKE_CXX_INCLUDE_WHAT_YOU_USE}")
unset(CMAKE_CXX_CLANG_TIDY)
unset(CMAKE_CXX_INCLUDE_WHAT_YOU_USE)
+include(${CMAKE_BINARY_DIR}/googlebenchmark/googlebenchmark-paths.cmake)
+
# Add googlebenchmark directly to our build. This defines the benchmark target.
-add_subdirectory(${CMAKE_BINARY_DIR}/googlebenchmark/googlebenchmark-src
- ${CMAKE_BINARY_DIR}/googlebenchmark/googlebenchmark-build
+add_subdirectory(${GOOGLEBENCHMARK_SOURCE_DIR}
+ ${GOOGLEBENCHMARK_BINARY_DIR}
EXCLUDE_FROM_ALL)
set_target_properties(benchmark PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:benchmark,INTERFACE_INCLUDE_DIRECTORIES>)
diff --git a/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake.in b/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake.in
index ee18edc2c..38c25dcc8 100644
--- a/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake.in
+++ b/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake.in
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.4.0)
project(googlebenchmark-download NONE)
@@ -17,11 +17,9 @@ if(EXISTS "${GOOGLEBENCHMARK_PATH}" AND IS_DIRECTORY "${GOOGLEBENCHMARK_PATH}" A
ExternalProject_Add(
googlebenchmark
- URL "${GOOGLEBENCHMARK_PATH}"
PREFIX "${CMAKE_BINARY_DIR}/googlebenchmark"
- SOURCE_DIR "${CMAKE_BINARY_DIR}/googlebenchmark-src"
+ SOURCE_DIR "${GOOGLEBENCHMARK_PATH}" # use existing src dir.
BINARY_DIR "${CMAKE_BINARY_DIR}/googlebenchmark-build"
- # PATCH_COMMAND patch -p1 -i "@rawspeed_SOURCE_DIR@/cmake/Modules/GoogleBenchmark-fixes.patch"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
@@ -34,12 +32,11 @@ else()
message(WARNING "Did not find GOOGLEBENCHMARK sources! Fetching from web...")
ExternalProject_Add(
googlebenchmark
- URL https://github.com/google/benchmark/archive/v1.3.0.tar.gz
- URL_HASH SHA512=272775e4dbd0ecc65a2a3a64f24e79682b630929dea3af47349329ac8b796341f1197458a67c9aac0e514857ebe7cbc191d18f6fd2c0aea3242562e69d8a6849
+ URL https://github.com/google/benchmark/archive/v1.4.1.tar.gz
+ URL_HASH SHA512=e9d71b4679cb4e4d755f7bb4101e131b37e209b6aebd0853e0c63eb11c42b75faa5da4ff8c265149808a475f3a1cfb140c5b49f877acfda908a4bb7add983aae
PREFIX "${CMAKE_BINARY_DIR}/googlebenchmark"
SOURCE_DIR "${CMAKE_BINARY_DIR}/googlebenchmark-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/googlebenchmark-build"
- # PATCH_COMMAND patch -p1 -i "@rawspeed_SOURCE_DIR@/cmake/Modules/GoogleBenchmark-fixes.patch"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
@@ -47,3 +44,9 @@ else()
)
endif()
endif()
+
+ExternalProject_Get_Property(googlebenchmark SOURCE_DIR BINARY_DIR)
+file(WRITE googlebenchmark-paths.cmake
+"set(GOOGLEBENCHMARK_SOURCE_DIR \"${SOURCE_DIR}\")
+set(GOOGLEBENCHMARK_BINARY_DIR \"${BINARY_DIR}\")
+")
diff --git a/src/external/rawspeed/cmake/Modules/GoogleTest.cmake b/src/external/rawspeed/cmake/Modules/GoogleTest.cmake
index 2676db6e9..7839625c8 100644
--- a/src/external/rawspeed/cmake/Modules/GoogleTest.cmake
+++ b/src/external/rawspeed/cmake/Modules/GoogleTest.cmake
@@ -1,7 +1,3 @@
-cmake_minimum_required(VERSION 3.0)
-
-project(googletest NONE)
-
# Download and unpack googletest at configure time
configure_file(${RAWSPEED_SOURCE_DIR}/cmake/Modules/GoogleTest.cmake.in ${CMAKE_BINARY_DIR}/googletest/CMakeLists.txt @ONLY)
@@ -49,10 +45,12 @@ set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE_SAVE "${CMAKE_CXX_INCLUDE_WHAT_YOU_USE}")
unset(CMAKE_CXX_CLANG_TIDY)
unset(CMAKE_CXX_INCLUDE_WHAT_YOU_USE)
+include(${CMAKE_BINARY_DIR}/googletest/googletest-paths.cmake)
+
# Add googletest directly to our build. This defines
# the gtest and gtest_main targets.
-add_subdirectory(${CMAKE_BINARY_DIR}/googletest/googletest-src
- ${CMAKE_BINARY_DIR}/googletest/googletest-build
+add_subdirectory(${GOOGLETEST_SOURCE_DIR}
+ ${GOOGLETEST_BINARY_DIR}
EXCLUDE_FROM_ALL)
set_target_properties(gtest PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest,INTERFACE_INCLUDE_DIRECTORIES>)
diff --git a/src/external/rawspeed/cmake/Modules/GoogleTest.cmake.in b/src/external/rawspeed/cmake/Modules/GoogleTest.cmake.in
index ca876c4e9..c463accbb 100644
--- a/src/external/rawspeed/cmake/Modules/GoogleTest.cmake.in
+++ b/src/external/rawspeed/cmake/Modules/GoogleTest.cmake.in
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.4.0)
project(googletest-download NONE)
@@ -20,9 +20,8 @@ if(EXISTS "${GOOGLETEST_PATH}" AND IS_DIRECTORY "${GOOGLETEST_PATH}"
ExternalProject_Add(
googletest
- URL "${GOOGLETEST_PATH}"
PREFIX "${CMAKE_BINARY_DIR}/googletest"
- SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src"
+ SOURCE_DIR "${GOOGLETEST_PATH}" # use existing src dir.
BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
@@ -36,8 +35,8 @@ else()
message(WARNING "Did not find Google Test sources! Fetching from web...")
ExternalProject_Add(
googletest
- URL https://github.com/google/googletest/archive/release-1.8.0.tar.gz
- URL_HASH SHA512=1dbece324473e53a83a60601b02c92c089f5d314761351974e097b2cf4d24af4296f9eb8653b6b03b1e363d9c5f793897acae1f0c7ac40149216035c4d395d9d
+ URL https://github.com/google/googletest/archive/release-1.8.1.tar.gz
+ URL_HASH SHA512=e6283c667558e1fd6e49fa96e52af0e415a3c8037afe1d28b7ff1ec4c2ef8f49beb70a9327b7fc77eb4052a58c4ccad8b5260ec90e4bceeac7a46ff59c4369d7
PREFIX "${CMAKE_BINARY_DIR}/googletest"
SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build"
@@ -48,3 +47,9 @@ else()
)
endif()
endif()
+
+ExternalProject_Get_Property(googletest SOURCE_DIR BINARY_DIR)
+file(WRITE googletest-paths.cmake
+"set(GOOGLETEST_SOURCE_DIR \"${SOURCE_DIR}\")
+set(GOOGLETEST_BINARY_DIR \"${BINARY_DIR}\")
+")
diff --git a/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake b/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake
new file mode 100644
index 000000000..7465f8fcb
--- /dev/null
+++ b/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake
@@ -0,0 +1,71 @@
+# Download and unpack LLVM OpenMP runtime library at configure time
+configure_file(${RAWSPEED_SOURCE_DIR}/cmake/Modules/LLVMOpenMP.cmake.in ${CMAKE_BINARY_DIR}/llvm-openmp/CMakeLists.txt @ONLY)
+
+execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
+ -DALLOW_DOWNLOADING_LLVMOPENMP=${ALLOW_DOWNLOADING_LLVMOPENMP} -DLLVMOPENMP_PATH:PATH=${LLVMOPENMP_PATH} .
+ RESULT_VARIABLE result
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/llvm-openmp
+)
+
+if(result)
+ message(FATAL_ERROR "CMake step for LLVM OpenMP runtime library failed: ${result}")
+endif()
+
+execute_process(
+ COMMAND ${CMAKE_COMMAND} --build .
+ RESULT_VARIABLE result
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/llvm-openmp
+)
+
+if(result)
+ message(FATAL_ERROR "Build step for LLVM OpenMP runtime library failed: ${result}")
+endif()
+
+# We are building it separately from the LLVM itself.
+set(OPENMP_STANDALONE_BUILD ON CACHE BOOL "" FORCE)
+
+# let's insist on static library.
+set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
+set(LIBOMP_ENABLE_SHARED OFF CACHE BOOL "" FORCE)
+
+set(CMAKE_C_FLAGS_SAVE "${CMAKE_C_FLAGS}")
+set(CMAKE_CXX_FLAGS_SAVE "${CMAKE_CXX_FLAGS}")
+
+set(CMAKE_C_FLAGS_SANITIZE_SAVE "${CMAKE_C_FLAGS_SANITIZE}")
+set(CMAKE_CXX_FLAGS_SANITIZE_SAVE "${CMAKE_CXX_FLAGS_SANITIZE}")
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
+
+set(ubsan "-fsanitize-recover=undefined")
+if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ set(ubsan "${ubsan} -fsanitize-recover=integer")
+endif()
+
+SET(CMAKE_CXX_FLAGS_SANITIZE "${CMAKE_CXX_FLAGS_SANITIZE} ${ubsan}")
+SET(CMAKE_C_FLAGS_SANITIZE "${CMAKE_C_FLAGS_SANITIZE} ${ubsan}")
+
+set(CMAKE_CXX_CLANG_TIDY_SAVE "${CMAKE_CXX_CLANG_TIDY}")
+set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE_SAVE "${CMAKE_CXX_INCLUDE_WHAT_YOU_USE}")
+
+unset(CMAKE_CXX_CLANG_TIDY)
+unset(CMAKE_CXX_INCLUDE_WHAT_YOU_USE)
+
+include(${CMAKE_BINARY_DIR}/llvm-openmp/llvm-openmp-paths.cmake)
+
+# Add llvm openmp directly to our build. This defines the omp target.
+add_subdirectory(${LLVMOPENMP_SOURCE_DIR}
+ ${LLVMOPENMP_BINARY_DIR}
+ EXCLUDE_FROM_ALL)
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_SAVE}")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_SAVE}")
+
+set(CMAKE_C_FLAGS_SANITIZE "${CMAKE_C_FLAGS_SANITIZE_SAVE}" CACHE STRING "Flags used by the C++ compiler during sanitized (ASAN+UBSAN) builds." FORCE )
+set(CMAKE_CXX_FLAGS_SANITIZE "${CMAKE_CXX_FLAGS_SANITIZE_SAVE}" CACHE STRING "Flags used by the C++ compiler during sanitized (ASAN+UBSAN) builds." FORCE )
+MARK_AS_ADVANCED(
+ CMAKE_CXX_FLAGS_SANITIZE
+ CMAKE_C_FLAGS_SANITIZE )
+
+set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY_SAVE}")
+set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "${CMAKE_CXX_INCLUDE_WHAT_YOU_USE_SAVE}")
diff --git a/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake.in b/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake.in
new file mode 100644
index 000000000..e2f7c9334
--- /dev/null
+++ b/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake.in
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.4.0)
+
+project(llvm-openmp-download NONE)
+
+# Enable ExternalProject CMake module
+include(ExternalProject)
+
+option(ALLOW_DOWNLOADING_LLVMOPENMP "If LLVM OpenMP runtime library src tree is not found in location specified by LLVMOPENMP_PATH, do fetch the archive from internet" OFF)
+set(LLVMOPENMP_PATH "/usr/src/openmp" CACHE PATH "Path to the LLVM OpenMP runtime library root tree.")
+
+# Download and install LLVM OpenMP runtime library
+
+message(STATUS "Looking for LLVM OpenMP runtime library sources")
+message(STATUS "Looking for LLVM OpenMP runtime library sources in ${LLVMOPENMP_PATH}")
+if(EXISTS "${LLVMOPENMP_PATH}" AND IS_DIRECTORY "${LLVMOPENMP_PATH}" AND EXISTS "${LLVMOPENMP_PATH}/CMakeLists.txt")
+ message(STATUS "Found LLVM OpenMP runtime library in ${LLVMOPENMP_PATH}")
+
+ ExternalProject_Add(
+ llvm-openmp
+ PREFIX "${CMAKE_BINARY_DIR}/llvm-openmp"
+ SOURCE_DIR "${LLVMOPENMP_PATH}" # use existing src dir.
+ BINARY_DIR "${CMAKE_BINARY_DIR}/llvm-openmp-build"
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ""
+ TEST_COMMAND ""
+ )
+else()
+ if(NOT ALLOW_DOWNLOADING_LLVMOPENMP)
+ message(SEND_ERROR "Did not find LLVM OpenMP runtime library sources! Either pass correct path in LLVMOPENMP_PATH, or enable ALLOW_DOWNLOADING_LLVMOPENMP, or disable USE_BUNDLED_LLVMOPENMP, or disable WITH_OPENMP.")
+ else()
+ message(WARNING "Did not find LLVM OpenMP runtime library sources! Fetching from web...")
+ ExternalProject_Add(
+ llvm-openmp
+ URL https://releases.llvm.org/7.0.0/openmp-7.0.0.src.tar.xz
+ URL_HASH SHA512=bda383d62c822db41504d7774974809cd2af042b03a0b4ca450cc1478c5977682f5c646734801c1b7a16233141d62359c17e87e1435c48a222e159a8763f8857
+ PREFIX "${CMAKE_BINARY_DIR}/llvm-openmp"
+ SOURCE_DIR "${CMAKE_BINARY_DIR}/llvm-openmp-src"
+ BINARY_DIR "${CMAKE_BINARY_DIR}/llvm-openmp-build"
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ""
+ TEST_COMMAND ""
+ )
+ endif()
+endif()
+
+ExternalProject_Get_Property(llvm-openmp SOURCE_DIR BINARY_DIR)
+file(WRITE llvm-openmp-paths.cmake
+"set(LLVMOPENMP_SOURCE_DIR \"${SOURCE_DIR}\")
+set(LLVMOPENMP_BINARY_DIR \"${BINARY_DIR}\")
+")
diff --git a/src/external/rawspeed/cmake/Modules/Pugixml.cmake b/src/external/rawspeed/cmake/Modules/Pugixml.cmake
index 752ceb7d6..78454d7a8 100644
--- a/src/external/rawspeed/cmake/Modules/Pugixml.cmake
+++ b/src/external/rawspeed/cmake/Modules/Pugixml.cmake
@@ -1,7 +1,3 @@
-cmake_minimum_required(VERSION 3.0)
-
-project(pugixml NONE)
-
# Download and unpack pugixml at configure time
configure_file(${RAWSPEED_SOURCE_DIR}/cmake/Modules/Pugixml.cmake.in ${CMAKE_BINARY_DIR}/pugixml/CMakeLists.txt @ONLY)
@@ -43,10 +39,12 @@ set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE_SAVE "${CMAKE_CXX_INCLUDE_WHAT_YOU_USE}")
unset(CMAKE_CXX_CLANG_TIDY)
unset(CMAKE_CXX_INCLUDE_WHAT_YOU_USE)
+include(${CMAKE_BINARY_DIR}/pugixml/pugixml-paths.cmake)
+
# Add pugixml directly to our build. This defines
# the gtest and gtest_main targets.
-add_subdirectory(${CMAKE_BINARY_DIR}/pugixml/pugixml-src
- ${CMAKE_BINARY_DIR}/pugixml/pugixml-build)
+add_subdirectory(${PUGIXML_SOURCE_DIR}
+ ${PUGIXML_BINARY_DIR})
set_target_properties(pugixml PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:pugixml,INTERFACE_INCLUDE_DIRECTORIES>)
diff --git a/src/external/rawspeed/cmake/Modules/Pugixml.cmake.in b/src/external/rawspeed/cmake/Modules/Pugixml.cmake.in
index 536f0e258..a6f3f2a4b 100644
--- a/src/external/rawspeed/cmake/Modules/Pugixml.cmake.in
+++ b/src/external/rawspeed/cmake/Modules/Pugixml.cmake.in
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.4.0)
project(pugixml-download NONE)
@@ -17,9 +17,8 @@ if(EXISTS "${PUGIXML_PATH}" AND IS_DIRECTORY "${PUGIXML_PATH}" AND EXISTS "${PUG
ExternalProject_Add(
pugixml
- URL "${PUGIXML_PATH}"
PREFIX "${CMAKE_BINARY_DIR}/pugixml"
- SOURCE_DIR "${CMAKE_BINARY_DIR}/pugixml-src"
+ SOURCE_DIR "${PUGIXML_PATH}" # use existing src dir.
BINARY_DIR "${CMAKE_BINARY_DIR}/pugixml-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
@@ -33,8 +32,8 @@ else()
message(WARNING "Did not find pugixml sources! Fetching from web...")
ExternalProject_Add(
pugixml
- URL https://github.com/zeux/pugixml/releases/download/v1.8.1/pugixml-1.8.1.tar.gz
- URL_HASH SHA512=1aec6f8cd0c385b66e848020d94d331db788c78523f72d145726738433a784b518084ec45a6eeffb0a6585bcf2759d09ad1e3d304d15d99068d43dbfd6db9d31
+ URL https://github.com/zeux/pugixml/releases/download/v1.9/pugixml-1.9.tar.gz
+ URL_HASH SHA512=853a9d985aae537391c6524d5413ef4de237d99d96cc58ea7fe7152f786df1e408cdacd2e4387697e23c3e67cdc1d42b29de554501309eae16d86edd0e24785f
PREFIX "${CMAKE_BINARY_DIR}/pugixml"
SOURCE_DIR "${CMAKE_BINARY_DIR}/pugixml-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/pugixml-build"
@@ -45,3 +44,9 @@ else()
)
endif()
endif()
+
+ExternalProject_Get_Property(pugixml SOURCE_DIR BINARY_DIR)
+file(WRITE pugixml-paths.cmake
+"set(PUGIXML_SOURCE_DIR \"${SOURCE_DIR}\")
+set(PUGIXML_BINARY_DIR \"${BINARY_DIR}\")
+")
diff --git a/src/external/rawspeed/cmake/Modules/Zlib.cmake b/src/external/rawspeed/cmake/Modules/Zlib.cmake
index 31a4d024f..df114c5bf 100644
--- a/src/external/rawspeed/cmake/Modules/Zlib.cmake
+++ b/src/external/rawspeed/cmake/Modules/Zlib.cmake
@@ -1,7 +1,3 @@
-cmake_minimum_required(VERSION 3.0)
-
-project(zlib NONE)
-
# Download and unpack zlib at configure time
configure_file(${RAWSPEED_SOURCE_DIR}/cmake/Modules/Zlib.cmake.in ${CMAKE_BINARY_DIR}/zlib/CMakeLists.txt @ONLY)
@@ -40,15 +36,17 @@ set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE_SAVE "${CMAKE_CXX_INCLUDE_WHAT_YOU_USE}")
unset(CMAKE_CXX_CLANG_TIDY)
unset(CMAKE_CXX_INCLUDE_WHAT_YOU_USE)
+include(${CMAKE_BINARY_DIR}/zlib/zlib-paths.cmake)
+
# XXX make sure that zlib is using it's own headers
# see https://github.com/madler/zlib/issues/218
-include_directories(BEFORE ${CMAKE_BINARY_DIR}/zlib/zlib-src)
-include_directories(BEFORE ${CMAKE_BINARY_DIR}/zlib/zlib-build)
+include_directories(BEFORE SYSTEM ${CMAKE_BINARY_DIR}/zlib/zlib-src)
+include_directories(BEFORE SYSTEM ${CMAKE_BINARY_DIR}/zlib/zlib-build)
# Add zlib directly to our build. This defines
# the gtest and gtest_main targets.
-add_subdirectory(${CMAKE_BINARY_DIR}/zlib/zlib-src
- ${CMAKE_BINARY_DIR}/zlib/zlib-build)
+add_subdirectory(${ZLIB_SOURCE_DIR}
+ ${ZLIB_BINARY_DIR})
set(_zlib_lib zlib) # shared
set(_zlib_lib zlibstatic) # static
diff --git a/src/external/rawspeed/cmake/Modules/Zlib.cmake.in b/src/external/rawspeed/cmake/Modules/Zlib.cmake.in
index 1f4a7a8a9..8a26de4e9 100644
--- a/src/external/rawspeed/cmake/Modules/Zlib.cmake.in
+++ b/src/external/rawspeed/cmake/Modules/Zlib.cmake.in
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.4.0)
project(zlib-download NONE)
@@ -17,9 +17,8 @@ if(EXISTS "${ZLIB_PATH}" AND IS_DIRECTORY "${ZLIB_PATH}" AND EXISTS "${ZLIB_PATH
ExternalProject_Add(
zlib
- URL "${ZLIB_PATH}"
PREFIX "${CMAKE_BINARY_DIR}/zlib"
- SOURCE_DIR "${CMAKE_BINARY_DIR}/zlib-src"
+ SOURCE_DIR "${ZLIB_PATH}" # use existing src dir.
BINARY_DIR "${CMAKE_BINARY_DIR}/zlib-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
@@ -45,3 +44,9 @@ else()
)
endif()
endif()
+
+ExternalProject_Get_Property(zlib SOURCE_DIR BINARY_DIR)
+file(WRITE zlib-paths.cmake
+"set(ZLIB_SOURCE_DIR \"${SOURCE_DIR}\")
+set(ZLIB_BINARY_DIR \"${BINARY_DIR}\")
+")