@@ -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
@@ -146,31 +152,20 @@ 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#--------------------------------------------------------------------------
166-
167162include (CTest)
168163enable_testing ()
169164add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /deps/googletest)
170165set (TESTS_OUT_DIR ${CMAKE_BINARY_DIR} /df_tests/)
166+ set (TEST_OUT_DIR_BINARY ${TESTS_OUT_DIR} /${CMAKE_BUILD_TYPE} )
171167
172-
173- # Unit testing ------------------------------------------------------------
168+ # add new test suites .cc here
174169set (UNIT_TESTS df_test_suites)
175170add_executable (${UNIT_TESTS}
176171 tests/unit_tests/DFPointCloudTest.cc
@@ -179,40 +174,8 @@ add_executable(${UNIT_TESTS}
179174set_target_properties (${UNIT_TESTS} PROPERTIES
180175 RUNTIME_OUTPUT_DIRECTORY ${TESTS_OUT_DIR}
181176 )
182-
183177target_link_libraries (${UNIT_TESTS} gtest gtest_main)
184178target_link_libraries (${UNIT_TESTS} ${SHARED_LIB_NAME} )
185179
186180add_test (NAME ${UNIT_TESTS} COMMAND ${UNIT_TESTS} )
187-
188-
189-
190-
191-
192-
193-
194- # # post build recipe
195- # add_test(NAME ${UNIT_TEST} COMMAND ${UNIT_TEST})
196- # add_custom_command(
197- # TARGET ${UNIT_TEST}
198- # COMMENT "Run tests"
199- # POST_BUILD
200- # WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
201- # COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> -R "^${UNIT_TEST}$" --output-on-failures
202- # )
203-
204- # Integration testing -----------------------------------------------------
205- # Component testing -------------------------------------------------------
206- # etc ---------------------------------------------------------------------
207-
208- # # TODO: a better way to copy the dlls to the tests directory for the tests
209- # # get all the files -dlls in the bin directory and copy them one by one to tests dir
210- # file(GLOB files ${CMAKE_BINARY_DIR}/bin/Release/*.dll)
211- # foreach(file ${files})
212- # message(STATUS "Copying ${file} to ${TESTS_OUT_DIR}")
213- # add_custom_command(TARGET ${UNIT_TESTS} POST_BUILD
214- # COMMAND ${CMAKE_COMMAND} -E copy
215- # ${file}
216- # ${TESTS_OUT_DIR}/Release
217- # )
218- # endforeach()
181+ copy_dlls(${TEST_OUT_DIR_BINARY} ${UNIT_TESTS} )
0 commit comments