Skip to content

Commit

Permalink
Modernize Boost and Eigen CMake usage
Browse files Browse the repository at this point in the history
  • Loading branch information
jefftrull committed Feb 21, 2019
1 parent 3850d3b commit 0eeb36e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 19 deletions.
15 changes: 3 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,20 +74,11 @@ if( METIS_LIB )
endif()

# finally Eigen
if( EIGEN3_INCLUDE_DIR )
set( CMAKE_MODULE_PATH ${EIGEN3_INCLUDE_DIR}/cmake )
list( REMOVE_DUPLICATES CMAKE_MODULE_PATH )

find_package( Eigen3 )
if( NOT EIGEN3_FOUND )
message( FATAL_ERROR "EIGEN3_INCLUDE_DIR supplied but Eigen was not found" )
endif()
# TODO: utilize other find modules (cholmod, blas, Metis, etc.) supplied with Eigen

include_directories( SYSTEM ${EIGEN3_INCLUDE_DIR} )
endif()
find_package( Eigen3 REQUIRED NO_MODULE )
# TODO: utilize other find modules (cholmod, blas, Metis, etc.) supplied with Eigen

add_executable( ei_prima eisprima.cpp )
target_link_libraries( ei_prima Eigen3::Eigen )

# experiment: integrate our code using a single main() and a Policy wrapping each library
add_subdirectory( policies )
13 changes: 6 additions & 7 deletions policies/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,11 @@ target_compile_definitions( epolicy PUBLIC USE_EIGEN )
if ( SUITESPARSE_ROOT )
add_executable( cpolicy policy_experiment.cpp csparse_shim.cpp )
target_compile_definitions( cpolicy PUBLIC USE_CSPARSE )
target_include_directories( cpolicy PUBLIC ${Boost_INCLUDE_DIRS} )
target_link_libraries( cpolicy cxsparse )
target_link_libraries( cpolicy cxsparse Boost::boost )

add_executable( spolicy policy_experiment.cpp suitesparse_shim.cpp )
target_compile_definitions( spolicy PUBLIC USE_SUITESPARSE )
target_include_directories( spolicy PUBLIC ${Boost_INCLUDE_DIRS} )
target_link_libraries( spolicy klu btf spqr cholmod ccolamd colamd amd openblas suitesparseconfig ${METIS_LIB} camd )
target_link_libraries( spolicy klu btf spqr cholmod ccolamd colamd amd openblas suitesparseconfig ${METIS_LIB} camd Boost::boost )
endif()

# Choose between Concept implementations
Expand All @@ -34,9 +32,10 @@ if( ( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" ) AND NOT ( CMAKE_CXX_COMPILER_VERSIO
target_compile_options( spolicy PUBLIC -fconcepts )
target_compile_definitions( spolicy PUBLIC USE_CONCEPTS_TS )
endif()
target_link_libraries( epolicy Eigen3::Eigen )
else()
target_include_directories( epolicy PUBLIC ${Boost_INCLUDE_DIRS} )
target_include_directories( cpolicy PUBLIC ${Boost_INCLUDE_DIRS} )
target_include_directories( spolicy PUBLIC ${Boost_INCLUDE_DIRS} )
target_link_libraries( epolicy Boost::boost )
target_link_libraries( spolicy Boost::boost )
target_link_libraries( cpolicy Boost::boost )
endif()

0 comments on commit 0eeb36e

Please sign in to comment.