From 5e436b71e40d66a59e2fcbb5292efbb4d0645932 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Thu, 23 Jul 2020 09:28:36 +0300
Subject: [PATCH] Use new cmake and precompiled headers

---
 .gitlab-ci.yml                                   | 6 +++---
 CMakeLists.txt                                   | 2 +-
 applications/tools/middlebury_gen/CMakeLists.txt | 1 +
 components/codecs/CMakeLists.txt                 | 1 +
 components/codecs/test/CMakeLists.txt            | 2 ++
 components/common/cpp/CMakeLists.txt             | 6 ++++++
 components/operators/CMakeLists.txt              | 2 ++
 components/renderers/cpp/CMakeLists.txt          | 2 ++
 components/structures/CMakeLists.txt             | 5 +++++
 lib/libstereo/CMakeLists.txt                     | 1 +
 lib/libstereo/test/CMakeLists.txt                | 6 ++++++
 11 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 75d507b21..778d11c15 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -28,9 +28,9 @@ linux:
   script:
     - mkdir build
     - cd build
-    - cmake .. -DCMAKE_CXX_FLAGS="-fdiagnostics-color" -DWITH_OPTFLOW=TRUE -DUSE_CPPCHECK=FALSE -DBUILD_CALIBRATION=TRUE -DWITH_CERES=TRUE -DCMAKE_BUILD_TYPE=Release -DCPACK_GENERATOR=DEB
-    - make
-    - make package
+    - /snap/bin/cmake .. -GNinja -DCMAKE_CXX_FLAGS="-fdiagnostics-color" -DWITH_OPTFLOW=TRUE -DUSE_CPPCHECK=FALSE -DBUILD_CALIBRATION=TRUE -DWITH_CERES=TRUE -DCMAKE_BUILD_TYPE=Release -DCPACK_GENERATOR=DEB
+    - ninja
+    - ninja package
     - ctest --output-on-failure
     - cd ../SDK/Python
     - python3 -m unittest discover test
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c876eb842..06e64e33e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 3.1.0)
+cmake_minimum_required (VERSION 3.16.0)
 include (CheckIncludeFile)
 include (CheckIncludeFileCXX)
 include (CheckFunctionExists)
diff --git a/applications/tools/middlebury_gen/CMakeLists.txt b/applications/tools/middlebury_gen/CMakeLists.txt
index 2dffb172d..13cc2c9e8 100644
--- a/applications/tools/middlebury_gen/CMakeLists.txt
+++ b/applications/tools/middlebury_gen/CMakeLists.txt
@@ -15,3 +15,4 @@ endif()
 
 #target_include_directories(cv-node PUBLIC ${PROJECT_SOURCE_DIR}/include)
 target_link_libraries(middlebury-gen ftlcommon ftlrgbd Threads::Threads ${OpenCV_LIBS} ftlrender ftloperators ftlstreams)
+set_property(TARGET middlebury-gen PROPERTY CUDA_ARCHITECTURES OFF)
diff --git a/components/codecs/CMakeLists.txt b/components/codecs/CMakeLists.txt
index 6e7b42f3c..1891b2a10 100644
--- a/components/codecs/CMakeLists.txt
+++ b/components/codecs/CMakeLists.txt
@@ -14,6 +14,7 @@ target_include_directories(BaseCodec PUBLIC
 	${CMAKE_CURRENT_SOURCE_DIR}/src/Video_Codec_SDK_9.1.23/Samples/NvCodec
 	$<TARGET_PROPERTY:ftlcommon,INTERFACE_INCLUDE_DIRECTORIES>
 )
+set_property(TARGET BaseCodec PROPERTY CUDA_ARCHITECTURES OFF)
 
 add_library(OpenCVCodec OBJECT	
 	src/opencv_encoder.cpp
diff --git a/components/codecs/test/CMakeLists.txt b/components/codecs/test/CMakeLists.txt
index 89550a4c1..34753db97 100644
--- a/components/codecs/test/CMakeLists.txt
+++ b/components/codecs/test/CMakeLists.txt
@@ -39,6 +39,8 @@ ${CMAKE_CURRENT_SOURCE_DIR}/../src/Video_Codec_SDK_9.1.23/Samples/NvCodec)
 target_link_libraries(nvidia_codec_unit
 	Threads::Threads ${OS_LIBS} ${OpenCV_LIBS} ${CUDA_LIBRARIES} ftlcommon nvcuvid cuda)
 
+set_property(TARGET nvidia_codec_unit PROPERTY CUDA_ARCHITECTURES OFF)
+
 
 add_test(NvidiaCodecUnitTest nvidia_codec_unit)
 
diff --git a/components/common/cpp/CMakeLists.txt b/components/common/cpp/CMakeLists.txt
index 9b06a7831..23595c5ac 100644
--- a/components/common/cpp/CMakeLists.txt
+++ b/components/common/cpp/CMakeLists.txt
@@ -29,6 +29,12 @@ target_include_directories(ftlcommon PUBLIC
 	PRIVATE src)
 target_link_libraries(ftlcommon Threads::Threads Eigen3::Eigen ${OS_LIBS} ${OpenCV_LIBS} ${URIPARSER_LIBRARIES} ${CUDA_LIBRARIES})
 
+target_precompile_headers(ftlcommon
+	PRIVATE include/ftl/utility/msgpack.hpp
+	PRIVATE include/ftl/utility/msgpack_optional.hpp
+	PRIVATE include/ftl/cuda_common.hpp
+)
+
 if (BUILD_TESTS)
 add_subdirectory(test)
 endif()
diff --git a/components/operators/CMakeLists.txt b/components/operators/CMakeLists.txt
index bc4edb1ea..a00ff8e6f 100644
--- a/components/operators/CMakeLists.txt
+++ b/components/operators/CMakeLists.txt
@@ -57,6 +57,8 @@ target_include_directories(ftloperators PUBLIC
 
 target_link_libraries(ftloperators ftlrender ftlrgbd ftlcommon sgm libstereo Eigen3::Eigen Threads::Threads ${OpenCV_LIBS})
 
+set_property(TARGET ftloperators PROPERTY CUDA_ARCHITECTURES OFF)
+
 if (BUILD_TESTS)
 	add_subdirectory(test)
 endif()
diff --git a/components/renderers/cpp/CMakeLists.txt b/components/renderers/cpp/CMakeLists.txt
index bae316acd..905845f57 100644
--- a/components/renderers/cpp/CMakeLists.txt
+++ b/components/renderers/cpp/CMakeLists.txt
@@ -29,4 +29,6 @@ target_include_directories(ftlrender PUBLIC
 	PRIVATE src)
 target_link_libraries(ftlrender ftlrgbd ftlcommon Eigen3::Eigen Threads::Threads nanogui ${NANOGUI_EXTRA_LIBS} ${OpenCV_LIBS})
 
+set_property(TARGET ftlrender PROPERTY CUDA_ARCHITECTURES OFF)
+
 #ADD_SUBDIRECTORY(test)
diff --git a/components/structures/CMakeLists.txt b/components/structures/CMakeLists.txt
index 4b1a631d1..f339a3301 100644
--- a/components/structures/CMakeLists.txt
+++ b/components/structures/CMakeLists.txt
@@ -6,6 +6,11 @@ target_include_directories(ftldata PUBLIC
 
 target_link_libraries(ftldata ftlcommon Eigen3::Eigen ftlcodecs)
 
+target_precompile_headers(ftldata
+	PRIVATE include/ftl/data/new_frame.hpp
+	PRIVATE include/ftl/data/new_frameset.hpp
+)
+
 if (BUILD_TESTS)
 add_subdirectory(test)
 endif()
diff --git a/lib/libstereo/CMakeLists.txt b/lib/libstereo/CMakeLists.txt
index 7095e1679..f60cc79a1 100644
--- a/lib/libstereo/CMakeLists.txt
+++ b/lib/libstereo/CMakeLists.txt
@@ -119,6 +119,7 @@ endif()
 target_include_directories(libstereo PRIVATE src/ include/)
 target_include_directories(libstereo PUBLIC ${OpenCV_INCLUDE_DIRS})
 target_link_libraries(libstereo Threads::Threads ${OpenCV_LIBS} ${CUDA_LIBRARIES})
+set_property(TARGET libstereo PROPERTY CUDA_ARCHITECTURES OFF)
 
 if (BUILD_MIDDLEBURY)
     add_subdirectory(middlebury/)
diff --git a/lib/libstereo/test/CMakeLists.txt b/lib/libstereo/test/CMakeLists.txt
index ee222cd76..d5e6f318d 100644
--- a/lib/libstereo/test/CMakeLists.txt
+++ b/lib/libstereo/test/CMakeLists.txt
@@ -7,6 +7,7 @@ $<TARGET_OBJECTS:CatchTest>
 target_include_directories(dsi_cpu_unit PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../include")
 target_include_directories(dsi_cpu_unit PUBLIC ${OpenCV_INCLUDE_DIRS})
 target_link_libraries(dsi_cpu_unit Threads::Threads ${OpenCV_LIBS})
+#set_property(TARGET dsi_cpu_unit PROPERTY CUDA_ARCHITECTURES OFF)
 
 add_test(DSICPUUnitTest dsi_cpu_unit)
 
@@ -18,6 +19,7 @@ target_include_directories(dsi_gpu_unit PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../i
 target_include_directories(dsi_gpu_unit PUBLIC ${OpenCV_INCLUDE_DIRS})
 target_compile_definitions(dsi_gpu_unit PUBLIC USE_GPU)
 target_link_libraries(dsi_gpu_unit Threads::Threads ${OpenCV_LIBS})
+set_property(TARGET dsi_gpu_unit PROPERTY CUDA_ARCHITECTURES OFF)
 
 add_test(DSIGPUUnitTest dsi_gpu_unit)
 
@@ -28,6 +30,7 @@ $<TARGET_OBJECTS:CatchTest>
 target_include_directories(array2d_unit PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../include")
 target_include_directories(array2d_unit PUBLIC ${OpenCV_INCLUDE_DIRS})
 target_link_libraries(array2d_unit Threads::Threads ${OpenCV_LIBS})
+set_property(TARGET array2d_unit PROPERTY CUDA_ARCHITECTURES OFF)
 
 add_test(Array2DUnitTest array2d_unit)
 
@@ -41,6 +44,7 @@ $<TARGET_OBJECTS:CatchTest>
 target_include_directories(matching_cost_unit PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../include" "${CMAKE_CURRENT_SOURCE_DIR}/../src")
 target_include_directories(matching_cost_unit PUBLIC ${OpenCV_INCLUDE_DIRS})
 target_link_libraries(matching_cost_unit Threads::Threads ${OpenCV_LIBS})
+set_property(TARGET matching_cost_unit PROPERTY CUDA_ARCHITECTURES OFF)
 
 add_test(MatchingCostUnitTest matching_cost_unit)
 
@@ -51,6 +55,7 @@ $<TARGET_OBJECTS:CatchTest>
 target_include_directories(aggregation_unit PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../include")
 target_include_directories(aggregation_unit PUBLIC ${OpenCV_INCLUDE_DIRS})
 target_link_libraries(aggregation_unit Threads::Threads ${OpenCV_LIBS})
+set_property(TARGET aggregation_unit PROPERTY CUDA_ARCHITECTURES OFF)
 
 add_test(AggregationUnitTest aggregation_unit)
 
@@ -61,5 +66,6 @@ $<TARGET_OBJECTS:CatchTest>
 target_include_directories(wta_unit PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../include")
 target_include_directories(wta_unit PUBLIC ${OpenCV_INCLUDE_DIRS})
 target_link_libraries(wta_unit Threads::Threads ${OpenCV_LIBS})
+set_property(TARGET wta_unit PROPERTY CUDA_ARCHITECTURES OFF)
 
 add_test(WTAUnitTest wta_unit)
-- 
GitLab