@@ -7,6 +7,12 @@ list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
77include (external_tools)
88include (options )
99
10+ # check that the -DCMAKE_BUILD_TYPE is set
11+ if (NOT CMAKE_BUILD_TYPE )
12+ message (STATUS "Setting build type to 'Release' as none was specified." )
13+ set (CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build." FORCE)
14+ endif ()
15+
1016# do a submodule init if not done already
1117execute_process (COMMAND git submodule update --init --recursive
1218 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
@@ -48,7 +54,7 @@ target_include_directories(${SHARED_LIB_NAME}
4854 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /src
4955 )
5056
51- #set the MD_DynamicRelease flag for MSVC since we are compiling with /MD for py wrap
57+ #set the MD_DynamicRelease flag for MSVC since we are compiling with /MD for py wrap
5258set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL" )
5359
5460
@@ -78,7 +84,7 @@ target_link_libraries(${SHARED_LIB_NAME} PUBLIC Open3D::Open3D)
7884if (WIN32 )
7985 get_target_property (open3d_type Open3D::Open3D TYPE )
8086 if (open3d_type STREQUAL "SHARED_LIBRARY" )
81- message (STATUS "Copying Open3D.dll to ${CMAKE_CURRENT_BINARY_DIR} /$<CONFIG> " )
87+ message (STATUS "Copying Open3D.dll to ${CMAKE_CURRENT_BINARY_DIR} /${CMAKE_BUILD_TYPE} " )
8288 add_custom_command (TARGET ${SHARED_LIB_NAME} POST_BUILD
8389 COMMAND ${CMAKE_COMMAND} -E copy
8490 $<TARGET_FILE:Open3D::Open3D>
@@ -88,11 +94,15 @@ endif()
8894
8995# Boost (header only) -----------------------------------------------------
9096download_submodule_project(boost)
91- target_link_directories (${SHARED_LIB_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /deps/boost/win/1_89/include /boost-1_85)
97+ target_include_directories (${SHARED_LIB_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /deps/boost/win/1_89/include /boost-1_85)
9298
9399# CGAL (header-only) ------------------------------------------------------
94100target_include_directories (${SHARED_LIB_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /deps/cgal/include )
95101
102+ # Cilantro (header-only) --------------------------------------------------
103+ download_submodule_project(cilantro)
104+ target_include_directories (${SHARED_LIB_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /deps/submodule-cilantro/include )
105+
96106# loguru (header-only) ----------------------------------------------------
97107download_submodule_project(loguru)
98108add_subdirectory (deps/loguru)
@@ -146,55 +156,30 @@ if (BUILD_PYTHON_MODULE)
146156 $<TARGET_FILE:${PYBINDMODULE_NAME} >
147157 ${PYPI_DIR}
148158 )
149-
150- # get all the files -dlls in the bin directory and copy them one by one to the pypi directory
151- message (STATUS "Copying dlls to ${TARGET_DLL_PYPI_DIR} " )
152- file (GLOB files ${CMAKE_BINARY_DIR} /bin/Release/*.dll)
153- foreach (file ${files} )
154- message (STATUS "Copying ${file} to ${TARGET_DLL_PYPI_DIR} " )
155- add_custom_command (TARGET ${PYBINDMODULE_NAME} POST_BUILD
156- COMMAND ${CMAKE_COMMAND} -E copy
157- ${file}
158- ${TARGET_DLL_PYPI_DIR}
159- )
160- endforeach ()
159+ copy_dlls(${TARGET_DLL_PYPI_DIR} ${PYBINDMODULE_NAME} )
161160
162161endif ()
163162
164163#--------------------------------------------------------------------------
165164# Tests
166165#--------------------------------------------------------------------------
166+ include (CTest)
167+ enable_testing ()
168+ add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /deps/googletest)
169+ set (TESTS_OUT_DIR ${CMAKE_BINARY_DIR} /df_tests/)
170+ set (TEST_OUT_DIR_BINARY ${TESTS_OUT_DIR} /${CMAKE_BUILD_TYPE} )
171+
172+ # add new test suites .cc here
173+ set (UNIT_TESTS df_test_suites)
174+ add_executable (${UNIT_TESTS}
175+ tests/unit_tests/DFPointCloudTest.cc
176+ tests/entryTest.cc
177+ )
178+ set_target_properties (${UNIT_TESTS} PROPERTIES
179+ RUNTIME_OUTPUT_DIRECTORY ${TESTS_OUT_DIR}
180+ )
181+ target_link_libraries (${UNIT_TESTS} gtest gtest_main)
182+ target_link_libraries (${UNIT_TESTS} ${SHARED_LIB_NAME} )
167183
168- # include(CTest)
169- # enable_testing()
170- # add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/deps/googletest)
171- # set(TESTS_OUT_DIR ${CMAKE_BINARY_DIR}/tests/)
172-
173-
174- # # Unit testing ------------------------------------------------------------
175- # set(UNIT_TESTS unit_tests)
176- # add_executable(${UNIT_TESTS} tests/unit_tests/DFPointCloudTest.cc)
177- # set_target_properties(${UNIT_TESTS} PROPERTIES
178- # RUNTIME_OUTPUT_DIRECTORY ${TESTS_OUT_DIR}
179- # )
180-
181- # target_link_libraries(${UNIT_TESTS} gtest gtest_main)
182- # target_link_libraries(${UNIT_TESTS} ${SHARED_LIB_NAME})
183-
184- # add_test(NAME ${UNIT_TESTS} COMMAND ${UNIT_TESTS})
185-
186- # Integration testing -----------------------------------------------------
187- # Component testing -------------------------------------------------------
188- # etc ---------------------------------------------------------------------
189-
190- # # TODO: a better way to copy the dlls to the tests directory for the tests
191- # # get all the files -dlls in the bin directory and copy them one by one to tests dir
192- # file(GLOB files ${CMAKE_BINARY_DIR}/bin/Release/*.dll)
193- # foreach(file ${files})
194- # message(STATUS "Copying ${file} to ${TESTS_OUT_DIR}")
195- # add_custom_command(TARGET ${UNIT_TESTS} POST_BUILD
196- # COMMAND ${CMAKE_COMMAND} -E copy
197- # ${file}
198- # ${TESTS_OUT_DIR}/Release
199- # )
200- # endforeach()
184+ add_test (NAME ${UNIT_TESTS} COMMAND ${UNIT_TESTS} )
185+ copy_dlls(${TEST_OUT_DIR_BINARY} ${UNIT_TESTS} )
0 commit comments