From cb1d6b811df6ea0e45e4a1026e92a266d7d1957e Mon Sep 17 00:00:00 2001 From: iasonmanolas Date: Tue, 19 Jul 2022 14:47:31 +0300 Subject: [PATCH] Refactoring. Made library static --- CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 83adc0b..7624411 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.0) project(MySources) file(GLOB MySourcesFiles ${CMAKE_CURRENT_LIST_DIR}/*.hpp ${CMAKE_CURRENT_LIST_DIR}/*.cpp) -add_library(${PROJECT_NAME} ${MySourcesFiles} ) +add_library(${PROJECT_NAME} STATIC ${MySourcesFiles} ) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_20) #Download external dependencies NOTE: If the user has one of these libs it shouldn't be downloaded again. @@ -97,7 +97,7 @@ if(${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) + target_link_libraries(${PROJECT_NAME} PUBLIC -static Eigen3::Eigen matplot ThreedBeamFEA pthread gfortran quadmath) else() target_link_libraries(${PROJECT_NAME} PUBLIC Eigen3::Eigen matplot ThreedBeamFEA tbb pthread) endif() @@ -117,9 +117,9 @@ 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}) +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) @@ -135,11 +135,13 @@ PUBLIC ${ENSMALLEN_SOURCE_DIR}/include) add_compile_definitions(USE_ENSMALLEN) #endif() -#Chrono -set(Chrono_DIR "/home/iason/Coding/Libraries/chrono-7.0.3/build/cmake") -#LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}/../Chrono/lib") -#find_package(Chrono #[[COMPONENTS FEA]] -# CONFIG) +##Chrono +##add_subdirectory("/home/iason/Coding/build/external dependencies/CHRONO-src" "/home/iason/Coding/build/external dependencies/CHRONO-src/build") +##set(Chrono_DIR "/home/iason/Coding/Libraries/chrono-7.0.3/build/Release/cmake") +#set(Chrono_DIR "/home/iason/Coding/Libraries/chrono-7.0.3/build/Release/cmake") +##LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}/../Chrono/lib") +#find_package(Chrono CONFIG +# ) #if (NOT Chrono_FOUND) # message("Could not find Chrono or one of its required modules") # return() @@ -148,10 +150,13 @@ set(Chrono_DIR "/home/iason/Coding/Libraries/chrono-7.0.3/build/cmake") # COMPILE_FLAGS "${CHRONO_CXX_FLAGS} ${EXTRA_COMPILE_FLAGS}" # COMPILE_DEFINITIONS "CHRONO_DATA_DIR=\"${CHRONO_DATA_DIR}\"" # LINK_FLAGS "${CHRONO_LINKER_FLAGS}") -#target_link_libraries(${PROJECT_NAME} PRIVATE ${CHRONO_LIBRARIES}) -target_include_directories(${PROJECT_NAME} PRIVATE ${CHRONO_INCLUDE_DIRS} #[["/home/iason/Coding/Libraries/chrono-7.0.3/src"]] #[["/usr/include/irrlicht"]] ) -#target_link_directories(${PROJECT_NAME} PUBLIC "/home/iason/Coding/Libraries/chrono-7.0.3/build/Debug/lib/") -target_link_libraries(${PROJECT_NAME} PRIVATE "/home/iason/Coding/Libraries/chrono-7.0.3/build/Debug/lib/libChronoEngine.so" #[[ChronoEngine_irrlicht]]) +#include_directories(${CHRONO_INCLUDE_DIRS}) +#target_link_libraries(${PROJECT_NAME} PUBLIC ${CHRONO_LIBRARIES}) +#target_include_directories(${PROJECT_NAME} PUBLIC "/home/iason/Coding/Libraries/chrono-7.0.3/src" #[[${CHRONO_INCLUDE_DIRS}]] #[["/home/iason/Coding/Libraries/chrono-7.0.3/src"]] #[["/usr/include/irrlicht"]] ) +#target_link_directories(${PROJECT_NAME} PRIVATE "/home/iason/Coding/build/external dependencies/CHRONO-src/build/RelWithDebInfo/lib") +#target_link_libraries(${PROJECT_NAME} PUBLIC "/home/iason/Coding/build/external dependencies/CHRONO-src/build/RelWithDebInfo/lib/libChronoEngine.a") +target_link_libraries(${PROJECT_NAME} PUBLIC "/home/iason/Coding/Libraries/chrono-7.0.3/build/Release/lib/libChronoEngine.a") + #add_subdirectory("/home/iason/Coding/Projects/Approximating shapes with flat patterns/Elastic rods/ElasticRods") #set(MESHFEM_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/meshfem) @@ -168,8 +173,23 @@ target_link_libraries(${PROJECT_NAME} PRIVATE "/home/iason/Coding/Libraries/chro ##PUBLIC ${MESHFEM_SOURCE_DIR}/include) ##add_compile_definitions(USE_ENSMALLEN) +##DER by panetta fork +##set(FETCHCONTENT_SOURCE_DIR_LIBIGL "/home/iason/Coding/Libraries/libigl/cmake" CACHE PATH "not set") +#set(LIBIGL_INCLUDE_DIR "/home/iason/Coding/Projects/Approximating shapes with flat patterns/Elastic rods/ElasticRods/3rdparty/libigl/include") +##list(PREPEND CMAKE_MODULE_PATH "/home/iason/Coding/Libraries/libigl/cmake") +##include(libigl) +##add_subdirectory("/home/iason/Coding/Projects/Approximating shapes with flat patterns/Elastic rods/ElasticRods/3rdparty/MeshFEM/" ${EXTERNAL_DEPS_DIR}/MeshFEM) +#set(DER_Panetta_dir "/home/iason/Coding/Projects/Approximating shapes with flat patterns/Elastic rods/DER_panneta_fork") +#set(DER_Panetta_bin_dir "/home/iason/Coding/build/external dependencies/DER_panetta_fork") +#add_subdirectory(${DER_Panetta_dir} ${DER_Panetta_bin_dir}) +##add_subdirectory("/home/iason/Coding/Projects/Approximating shapes with flat patterns/Elastic rods/ElasticRods/3rdparty/MeshFEM" "/home/iason/Coding/build/external dependencies/MeshFEM") +##add_subdirectory("/home/iason/Coding/Projects/Approximating shapes with flat patterns/Elastic rods/ElasticRods/3rdparty/RotationOptimization" "/home/iason/Coding/build/external dependencies/RotationOptimization" ) +#target_link_directories(${PROJECT_NAME} PUBLIC "/home/iason/Coding/build/Elastic rods/DER_panneta_fork/Debug") +#target_link_libraries(${PROJECT_NAME} PUBLIC RigidRodLinkages ElasticRods rotation_optimization MeshFEM "/home/iason/Coding/build/Elastic rods/DER_panneta_fork/Debug/3rdparty/visvalingam_simplify/src/libVisvalingamSimplify.a") +#target_include_directories(${PROJECT_NAME} PUBLIC ${DER_Panetta_dir} ) + ##TBB -if(NOT TARGET tbb) +if(NOT TARGET tbb_static AND NOT TARGET tbb) set(TBB_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/tbb) download_project(PROJ TBB GIT_REPOSITORY https://github.com/wjakob/tbb.git @@ -180,6 +200,6 @@ if(NOT TARGET tbb) ) option(TBB_BUILD_TESTS "Build TBB tests and enable testing infrastructure" OFF) add_subdirectory(${TBB_SOURCE_DIR} ${TBB_BINARY_DIR}) -endif() link_directories(${TBB_BINARY_DIR}) - +target_link_libraries(${PROJECT_NAME} PRIVATE tbb_static) +endif()