@@ -2,34 +2,22 @@ cmake_minimum_required(VERSION 3.16.)
22project (DiffCheck VERSION 1.0.0 LANGUAGES CXX C)
33set (CMAKE_CXX_STANDARD 17)
44
5-
65list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR} /cmake)
76
8-
9- #--------------------------------------------------------------------------
10- # refresh deps gitmodules
11- #--------------------------------------------------------------------------
12-
7+ # import the custom cmake utilities funcs
138include (external_tools)
149
15- #FIXME: here we need to use the external function to update the submodules to the
16- # latest commit
10+ # do a submodule init if not done already
1711execute_process (COMMAND git submodule update --init --recursive
1812 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
1913 RESULT_VARIABLE GIT_SUBMOD_RESULT
2014 )
21- # do a git pull to get the latest commit
22- execute_process (COMMAND git pull
23- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
24- RESULT_VARIABLE GIT_PULL_RESULT
25- )
2615if (NOT GIT_SUBMOD_RESULT EQUAL "0" )
2716 message (FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT} , please checkout submodules" )
2817endif ()
2918
30-
3119#--------------------------------------------------------------------------
32- # library
20+ # diffCheck dynamic lib
3321#--------------------------------------------------------------------------
3422
3523set (SHARED_LIB_NAME diffCheck)
@@ -51,27 +39,17 @@ endif()
5139 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin # for dll
5240 # ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin # for lib
5341 )
54-
5542target_include_directories (${SHARED_LIB_NAME}
5643 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /src
5744 )
5845
59- # target_precompile_headers(${SHARED_LIB_NAME} PUBLIC src/diffcheckpch.hh)
60-
6146#--------------------------------------------------------------------------
6247# 3rd party
6348#--------------------------------------------------------------------------
64-
65-
66-
67-
68-
69-
70-
71- # FIXME: problems with glfw (LINK : fatal error LNK1104: cannot open file '..\deps\glew\win\2_2_0\bin\Release\x64\glew32.obj' [F:\diffCheck\build\diffCheck.vcxproj])
72- # glfw (pre-build binaries) --------------------------------------------------------------
73-
49+ # glfw (pre-build binaries) -----------------------------------------------
7450# TODO: add binaries to deps
51+ # Get the latest commit on branch
52+ download_submodule_project(glfw)
7553set (GLFW_VERSION 3_3_4) # 3.3.4
7654set (GLFW_LIB_PATH ${CMAKE_CURRENT_SOURCE_DIR} /deps/glfw/win/${GLFW_VERSION} /lib-vc2019)
7755set (GLFW_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR} /deps/glfw/win/${GLFW_VERSION} /include )
@@ -87,7 +65,8 @@ target_link_libraries(${SHARED_LIB_NAME} PUBLIC glfw3)
8765target_include_directories (${SHARED_LIB_NAME} PUBLIC ${GLFW_INCLUDE_PATH} )
8866
8967# TODO: replace with add_subdirectory() instead of binaries
90- # glew (pre-build binaries) --------------------------------------------------------------
68+ # glew (pre-build binaries) ----------------------------------------------
69+ download_submodule_project(glew)
9170set (GLEW_VERSION 2_2_0) # 2.2.0
9271set (GLEW_LIB_PATH ${CMAKE_CURRENT_SOURCE_DIR} /deps/glew/win/${GLEW_VERSION} /bin/Release/x64)
9372set (GLEW_STATIC_LIB_PATH ${CMAKE_CURRENT_SOURCE_DIR} /deps/glew/win/${GLEW_VERSION} /lib/Release/x64)
@@ -100,69 +79,38 @@ set_target_properties(glew32 PROPERTIES
10079 INTERFACE_INCLUDE_DIRECTORIES ${GLEW_INCLUDE_PATH}
10180 )
10281
103-
104- # target_link_directories(${SHARED_LIB_NAME} PUBLIC ${GLEW_STATIC_LIB_PATH})
105- # target_link_directories(${SHARED_LIB_NAME} INTERFACE ${GLEW_STATIC_LIB_PATH})
106- # target_link_directories(${SHARED_LIB_NAME} PUBLIC ${GLEW_LIB_PATH})
107- # target_link_directories(${SHARED_LIB_NAME} INTERFACE ${GLEW_LIB_PATH})
108-
10982target_link_libraries (${SHARED_LIB_NAME} PUBLIC glew32)
110- # target_link_libraries(${SHARED_LIB_NAME} INTERFACE glew32)
11183target_include_directories (${SHARED_LIB_NAME} PUBLIC ${GLEW_INCLUDE_PATH} )
112- # target_include_directories(${SHARED_LIB_NAME} INTERFACE ${GLEW_INCLUDE_PATH})
11384
114- # fmt (header-only)--------------------------------------------------------------
85+ # fmt (header-only)------------------------------------------------------
86+ download_submodule_project(fmt)
11587add_subdirectory (deps/fmt)
11688
11789target_link_libraries (${SHARED_LIB_NAME} PUBLIC fmt::fmt)
118- # target_link_libraries(${SHARED_LIB_NAME} INTERFACE fmt::fmt)
11990
120- # Eigen (header-only)--------------------------------------------------------------
91+ # Eigen (header-only)----------------------------------------------------
92+ download_submodule_project(eigen)
12193add_subdirectory (deps/eigen)
12294
12395target_link_libraries (${SHARED_LIB_NAME} PUBLIC Eigen3::Eigen)
124- # target_link_libraries(${SHARED_LIB_NAME} INTERFACE Eigen3::Eigen)
125-
12696
127-
128- # FIXME: no need to specify opnegl because by system and fetched automatically
129- # # # OpenGL (from system) --------------------------------------------------------------
97+ # # # OpenGL (from system) ----------------------------------------------
13098find_package (OpenGL REQUIRED)
13199target_link_libraries (${SHARED_LIB_NAME} PUBLIC OpenGL::GL)
132100target_link_libraries (${SHARED_LIB_NAME} INTERFACE OpenGL::GL)
133101
134-
135-
136-
137-
138-
139-
140- # HERE'S THE PROBLEEEEEM <<<<<<
141- # Libigl (header-only) --------------------------------------------------------------
142-
102+ # Libigl (header-only) --------------------------------------------------
103+ download_submodule_project(libigl)
143104# all dependecies for libigl: https://libigl.github.io/third-party/
144105# set compiling flags for libigl
145106set (LIBIGL_USE_STATIC_LIBRARY OFF )
146107set (LIBIGL_GLFW ON )
147108add_subdirectory (deps/libigl)
148109
149110target_link_libraries (${SHARED_LIB_NAME} PUBLIC igl::glfw)
150- # target_link_libraries(${SHARED_LIB_NAME} INTERFACE igl::core igl::opengl igl::opengl_glfw)
151-
152- # set(LIBIGL_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/deps/libigl/include)
153- # target_include_directories(${SHARED_LIB_NAME} PUBLIC ${LIBIGL_INCLUDE_PATH})
154- # target_include_directories(${SHARED_LIB_NAME} INTERFACE ${LIBIGL_INCLUDE_PATH})
155-
156-
157-
158-
159111
160-
161-
162-
163-
164-
165- # Open3D (pre-build binaries /headless not visuals)--------------------------------------------------------------
112+ # Open3D (pre-build binaries /headless not visuals)-----------------------
113+ download_submodule_project(open3d)
166114set (O3D_VERSION 0_17) # 0.17.0
167115set (OPEN3D_SHAREDLIB_PATH ${CMAKE_CURRENT_SOURCE_DIR} /deps/open3d/win/${O3D_VERSION} /bin)
168116set (OPEN3D_LIB_PATH ${CMAKE_CURRENT_SOURCE_DIR} /deps/open3d/win/${O3D_VERSION} /lib)
@@ -176,13 +124,9 @@ set_target_properties(Open3D PROPERTIES
176124 )
177125
178126target_link_libraries (${SHARED_LIB_NAME} PUBLIC Open3D)
179- # target_link_libraries(${SHARED_LIB_NAME} INTERFACE Open3D)
180127target_include_directories (${SHARED_LIB_NAME} PUBLIC ${OPEN3D_INCLUDE_PATH} )
181- # target_include_directories(${SHARED_LIB_NAME} INTERFACE ${OPEN3D_INCLUDE_PATH})
182-
183-
184-
185128
129+ # ------------------------------------------------------------------------
186130# copy all the dlls to the bin directory to make dll accessible
187131# List of dynamic libraries that DiffCheck is linked against
188132set (DEPENDENCIES glfw3 glew32 Open3D)
@@ -195,11 +139,9 @@ foreach(DEP_LIB ${DEPENDENCIES})
195139 )
196140endforeach ()
197141
198-
199142#--------------------------------------------------------------------------
200143# executable
201144#--------------------------------------------------------------------------
202-
203145set (APP_NAME_EXE diffCheckApp)
204146
205147add_executable (${APP_NAME_EXE} src/diffCheckApp.cc)
@@ -214,7 +156,6 @@ target_include_directories(${APP_NAME_EXE}
214156 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /src
215157 )
216158
217-
218159#--------------------------------------------------------------------------
219160# Tests
220161#--------------------------------------------------------------------------
0 commit comments