You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.9 KiB
61 lines
1.9 KiB
cmake_minimum_required(VERSION 3.25)
|
|
project(top3d)
|
|
option(PROJECT_WITH_SIMD "Enable SIMD" ON)
|
|
option(ENABLE_SUITESPARSE "Use SuiteSparse" ON)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_CURRENT_SOURCE_DIR}/cmake/find)
|
|
|
|
#add_executable(${PROJECT_NAME} main.cpp)
|
|
File(GLOB CPP_FILES
|
|
src/*.cpp
|
|
src/*/*.cpp
|
|
)
|
|
include_directories(${CMAKE_SOURCE_DIR}/src)
|
|
add_library(${PROJECT_NAME}_lib ${CPP_FILES})
|
|
|
|
# Eigen3
|
|
include(eigen)
|
|
target_link_libraries(${PROJECT_NAME}_lib PUBLIC Eigen3::Eigen)
|
|
|
|
# Logger
|
|
include(spdlog)
|
|
target_link_libraries(${PROJECT_NAME}_lib PUBLIC spdlog::spdlog)
|
|
|
|
# JSON Parser
|
|
include(json)
|
|
target_link_libraries(${PROJECT_NAME}_lib PUBLIC nlohmann::json)
|
|
|
|
## TBB
|
|
#include(tbb)
|
|
#target_link_libraries(${PROJECT_NAME}_lib PUBLIC TBB::tbb)
|
|
|
|
if (ENABLE_SUITESPARSE)
|
|
# SuiteSparse
|
|
find_package(SuiteSparse REQUIRED)
|
|
target_compile_definitions(${PROJECT_NAME}_lib PUBLIC USE_SUITESPARSE)
|
|
target_link_libraries(${PROJECT_NAME}_lib PUBLIC ${SUITESPARSE_LIBRARIES})
|
|
target_include_directories(${PROJECT_NAME}_lib PUBLIC ${SUITESPARSE_INCLUDE_DIRS})
|
|
endif ()
|
|
|
|
# libigl
|
|
include(libigl)
|
|
target_link_libraries(${PROJECT_NAME}_lib PUBLIC igl::core)
|
|
|
|
# boost
|
|
find_package(Boost REQUIRED COMPONENTS filesystem)
|
|
target_link_libraries(${PROJECT_NAME}_lib PUBLIC Boost::filesystem)
|
|
# VTK
|
|
#include(vtk)
|
|
#target_link_libraries(${PROJECT_NAME}_lib PUBLIC vtkCommon vtkIOXML vtkIOLegacy)
|
|
#target_link_libraries(${PROJECT_NAME}_lib PUBLIC VTK::CommonCore VTK::IOXML VTK::IOLegacy)
|
|
message(STATUS "DONE BOOST")
|
|
# MMA
|
|
add_subdirectory(3rd/mma)
|
|
target_link_libraries(${PROJECT_NAME}_lib PUBLIC mma::mma mma::gcmma)
|
|
|
|
|
|
target_compile_definitions(${PROJECT_NAME}_lib PUBLIC CMAKE_SOURCE_DIR="${CMAKE_SOURCE_DIR}")
|
|
target_compile_definitions(${PROJECT_NAME}_lib PUBLIC WRITE_TENSOR)
|
|
target_compile_definitions(${PROJECT_NAME}_lib PUBLIC DEBUG)
|
|
|
|
add_subdirectory(${CMAKE_SOURCE_DIR}/examples)
|