@@ -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>
@@ -146,54 +152,30 @@ if (BUILD_PYTHON_MODULE)
146152 $<TARGET_FILE:${PYBINDMODULE_NAME} >
147153 ${PYPI_DIR}
148154 )
149-
150- # get all the files -dlls in the bin directory and copy them one by one to the pypi directory
151- file (GLOB files ${CMAKE_BINARY_DIR} /bin/Release/*.dll)
152- foreach (file ${files} )
153- message (STATUS "Copying ${file} to ${TARGET_DLL_PYPI_DIR} " )
154- add_custom_command (TARGET ${PYBINDMODULE_NAME} POST_BUILD
155- COMMAND ${CMAKE_COMMAND} -E copy
156- ${file}
157- ${TARGET_DLL_PYPI_DIR}
158- )
159- endforeach ()
155+ copy_dlls(${TARGET_DLL_PYPI_DIR} ${PYBINDMODULE_NAME} )
160156
161157endif ()
162158
163159#--------------------------------------------------------------------------
164160# Tests
165161#--------------------------------------------------------------------------
162+ include (CTest)
163+ enable_testing ()
164+ add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /deps/googletest)
165+ set (TESTS_OUT_DIR ${CMAKE_BINARY_DIR} /df_tests/)
166+ set (TEST_OUT_DIR_BINARY ${TESTS_OUT_DIR} /${CMAKE_BUILD_TYPE} )
167+
168+ # add new test suites .cc here
169+ set (UNIT_TESTS df_test_suites)
170+ add_executable (${UNIT_TESTS}
171+ tests/unit_tests/DFPointCloudTest.cc
172+ tests/entryTest.cc
173+ )
174+ set_target_properties (${UNIT_TESTS} PROPERTIES
175+ RUNTIME_OUTPUT_DIRECTORY ${TESTS_OUT_DIR}
176+ )
177+ target_link_libraries (${UNIT_TESTS} gtest gtest_main)
178+ target_link_libraries (${UNIT_TESTS} ${SHARED_LIB_NAME} )
166179
167- # include(CTest)
168- # enable_testing()
169- # add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/deps/googletest)
170- # set(TESTS_OUT_DIR ${CMAKE_BINARY_DIR}/tests/)
171-
172-
173- # # Unit testing ------------------------------------------------------------
174- # set(UNIT_TESTS unit_tests)
175- # add_executable(${UNIT_TESTS} tests/unit_tests/DFPointCloudTest.cc)
176- # set_target_properties(${UNIT_TESTS} PROPERTIES
177- # RUNTIME_OUTPUT_DIRECTORY ${TESTS_OUT_DIR}
178- # )
179-
180- # target_link_libraries(${UNIT_TESTS} gtest gtest_main)
181- # target_link_libraries(${UNIT_TESTS} ${SHARED_LIB_NAME})
182-
183- # add_test(NAME ${UNIT_TESTS} COMMAND ${UNIT_TESTS})
184-
185- # Integration testing -----------------------------------------------------
186- # Component testing -------------------------------------------------------
187- # etc ---------------------------------------------------------------------
188-
189- # # TODO: a better way to copy the dlls to the tests directory for the tests
190- # # get all the files -dlls in the bin directory and copy them one by one to tests dir
191- # file(GLOB files ${CMAKE_BINARY_DIR}/bin/Release/*.dll)
192- # foreach(file ${files})
193- # message(STATUS "Copying ${file} to ${TESTS_OUT_DIR}")
194- # add_custom_command(TARGET ${UNIT_TESTS} POST_BUILD
195- # COMMAND ${CMAKE_COMMAND} -E copy
196- # ${file}
197- # ${TESTS_OUT_DIR}/Release
198- # )
199- # endforeach()
180+ add_test (NAME ${UNIT_TESTS} COMMAND ${UNIT_TESTS} )
181+ copy_dlls(${TEST_OUT_DIR_BINARY} ${UNIT_TESTS} )
0 commit comments