diff --git a/CMakeLists.txt b/CMakeLists.txt index 79dc24f..0d01355 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.0) project(MySources) file(GLOB MySourcesFiles ${CMAKE_CURRENT_LIST_DIR}/*.hpp ${CMAKE_CURRENT_LIST_DIR}/*.cpp) @@ -19,22 +19,22 @@ endif() ##Create directory for the external libraries file(MAKE_DIRECTORY ${EXTERNAL_DEPS_DIR}) -#dlib -set(DLIB_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}/dlib) -download_project(PROJ DLIB - GIT_REPOSITORY https://github.com/davisking/dlib.git - GIT_TAG master - BINARY_DIR ${DLIB_BIN_DIR} - PREFIX ${EXTERNAL_DEPS_DIR} - ${UPDATE_DISCONNECTED_IF_AVAILABLE} -) -add_subdirectory(${DLIB_SOURCE_DIR} ${DLIB_BIN_DIR}) -if(${MYSOURCES_STATIC_LINK}) - target_link_libraries(${PROJECT_NAME} PUBLIC -static dlib::dlib) -else() - target_link_libraries(${PROJECT_NAME} PUBLIC dlib::dlib) -endif() -add_compile_definitions(DLIB_DEFINED) +##dlib +#set(DLIB_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}/dlib) +#download_project(PROJ DLIB +# GIT_REPOSITORY https://github.com/davisking/dlib.git +# GIT_TAG master +# BINARY_DIR ${DLIB_BIN_DIR} +# PREFIX ${EXTERNAL_DEPS_DIR} +# ${UPDATE_DISCONNECTED_IF_AVAILABLE} +#) +#add_subdirectory(${DLIB_SOURCE_DIR} ${DLIB_BIN_DIR}) +#if(${MYSOURCES_STATIC_LINK}) +# target_link_libraries(${PROJECT_NAME} PUBLIC -static dlib::dlib) +#else() +# target_link_libraries(${PROJECT_NAME} PUBLIC dlib::dlib) +#endif() +#add_compile_definitions(DLIB_DEFINED) if(${USE_POLYSCOPE}) set(POLYSCOPE_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/polyscope) @@ -48,6 +48,10 @@ if(${USE_POLYSCOPE}) add_subdirectory(${POLYSCOPE_SOURCE_DIR} ${POLYSCOPE_BINARY_DIR}) add_compile_definitions(POLYSCOPE_DEFINED) target_sources(${PROJECT_NAME} PUBLIC ${POLYSCOPE_SOURCE_DIR}/deps/imgui/imgui/misc/cpp/imgui_stdlib.cpp) + if(${USE_POLYSCOPE}) + message("Using polyscope here") + target_link_libraries(${PROJECT_NAME} PUBLIC polyscope) + endif() endif() ##vcglib devel branch @@ -58,6 +62,9 @@ download_project(PROJ vcglib_devel ${UPDATE_DISCONNECTED_IF_AVAILABLE} ) add_subdirectory(${vcglib_devel_SOURCE_DIR} ${vcglib_devel_BINARY_DIR}) + +#add_subdirectory("/home/iason/Coding/Libraries/vcglib" ${CMAKE_CURRENT_BINARY_DIR}/vcglib) +#target_include_directories(${PROJECT_NAME} PUBLIC "/home/iason/Coding/Libraries/vcglib") target_sources(${PROJECT_NAME} PUBLIC ${vcglib_devel_SOURCE_DIR}/wrap/ply/plylib.cpp) ##matplot++ lib @@ -103,42 +110,54 @@ if(MSVC) endif(MSVC) #link_directories(${CMAKE_CURRENT_LIST_DIR}/boost_graph/libs) +#set_target_properties(${PROJECT_NAME} PROPERTIES POSITION_INDEPENDENT_CODE TRUE) if(${MYSOURCES_STATIC_LINK}) - message("Linking statically") + message("STATIC LINK MY SOURCES:" ${MYSOURCES_STATIC_LINK}) +endif() +if(${MYSOURCES_STATIC_LINK}) + message("Linking statically here") target_link_libraries(${PROJECT_NAME} PUBLIC -static Eigen3::Eigen matplot ThreedBeamFEA tbb_static pthread gfortran quadmath) else() -# set_target_properties(${PROJECT_NAME} PROPERTIES POSITION_INDEPENDENT_CODE TRUE) target_link_libraries(${PROJECT_NAME} PUBLIC Eigen3::Eigen matplot ThreedBeamFEA tbb pthread) - if(${USE_POLYSCOPE}) - message("Using polyscope") - target_link_libraries(${PROJECT_NAME} PUBLIC polyscope) - endif() endif() + target_link_directories(MySources PUBLIC ${CMAKE_CURRENT_LIST_DIR}/boost_graph/libs) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_LIST_DIR}/boost_graph PUBLIC ${vcglib_devel_SOURCE_DIR} PUBLIC ${threed-beam-fea_SOURCE_DIR} - PUBLIC matplot + PUBLIC ${MATPLOTPLUSPLUS_SOURCE_DIR}/source ) -if(USE_ENSMALLEN) - ##ENSMALLEN - set(ENSMALLEN_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/ensmallen) - download_project(PROJ ENSMALLEN - GIT_REPOSITORY https://github.com/mlpack/ensmallen.git - GIT_TAG master - BINARY_DIR ${ENSMALLEN_BINARY_DIR} - PREFIX ${EXTERNAL_DEPS_DIR} - ${UPDATE_DISCONNECTED_IF_AVAILABLE} - ) - add_subdirectory(${ENSMALLEN_SOURCE_DIR} ${ENSMALLEN_BINARY_DIR}) - set(ARMADILLO_SOURCE_DIR "/home/iason/Coding/Libraries/armadillo") - add_subdirectory(${ARMADILLO_SOURCE_DIR} ${EXTERNAL_DEPS_DIR}/armadillo_build) - if(${MYSOURCES_STATIC_LINK}) - target_link_libraries(${PROJECT_NAME} PUBLIC "-static" ensmallen armadillo) - else() - target_link_libraries(${PROJECT_NAME} PUBLIC armadillo ensmallen) - endif() - target_include_directories(${PROJECT_NAME} PUBLIC ${ARMADILLO_SOURCE_DIR}/include ${ENSMALLEN_SOURCE_DIR}) -endif() + +#if(USE_ENSMALLEN) +set(ARMADILLO_SOURCE_DIR "/home/iason/Coding/Libraries/armadillo") +set(ARMADILLO_BIN_DIR "/home/iason/Coding/Libraries/armadillo/build") +add_subdirectory(${ARMADILLO_SOURCE_DIR} ${ARMADILLO_BIN_DIR}) +target_include_directories(${PROJECT_NAME} PUBLIC ${ARMADILLO_SOURCE_DIR}/include) +add_compile_definitions(ARMA_DONT_USE_WRAPPER) +target_link_libraries(${PROJECT_NAME} PUBLIC #[["/home/iason/Coding/Libraries/armadillo/build/libarmadillo.a"]] blas lapack) +find_package(Armadillo REQUIRED) +target_link_libraries(${PROJECT_NAME} PUBLIC ${ARMADILLO_LIBRARIES}) + +##ENSMALLEN +set(ENSMALLEN_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/ensmallen) +download_project(PROJ ENSMALLEN + GIT_REPOSITORY https://github.com/mlpack/ensmallen.git + GIT_TAG master + BINARY_DIR ${ENSMALLEN_BINARY_DIR} + PREFIX ${EXTERNAL_DEPS_DIR} + ${UPDATE_DISCONNECTED_IF_AVAILABLE} +) +# add_subdirectory(${ENSMALLEN_SOURCE_DIR} ${ENSMALLEN_BINARY_DIR}) +# target_link_libraries(${PROJECT_NAME} INTERFACE ensmallen) +target_include_directories(${PROJECT_NAME} +PUBLIC ${ENSMALLEN_SOURCE_DIR}/include) +add_compile_definitions(USE_ENSMALLEN) +#endif() + +#find_package(OpenMP REQUIRED) +#target_link_libraries(${PROJECT_NAME} OpenMP::OpenMP_CXX) +#target_include_directories(${PROJECT_NAME} OpenMP::OpenMP_CXX) + +#message(STATUS "OpenMP_C_INCLUDE_DIRS: ${OpenMP_CXX_INCLUDE_DIRS}")