diff --git a/CMake/ensmallen-config.cmake.in b/CMake/ensmallen-config.cmake.in index 3a9a93c..7bed7fd 100644 --- a/CMake/ensmallen-config.cmake.in +++ b/CMake/ensmallen-config.cmake.in @@ -1,4 +1,9 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +if(@USE_OPENMP@) +find_dependency(OpenMP) +endif() +find_dependency(Armadillo CONFIG) include(${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake) check_required_components(ensmallen) diff --git a/CMakeLists.txt b/CMakeLists.txt index 551c538..0b20af1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,21 +47,13 @@ endif() # Find OpenMP and link it. if(USE_OPENMP) - if(NOT TARGET OpenMP::OpenMP_CXX) - find_package(Threads REQUIRED) - add_library(OpenMP::OpenMP_CXX IMPORTED INTERFACE) - set_property(TARGET OpenMP::OpenMP_CXX - PROPERTY INTERFACE_COMPILE_OPTIONS ${OpenMP_CXX_FLAGS}) - # Only works if the same flag is passed to the linker; use CMake 3.9+ otherwise (Intel, AppleClang). - set_property(TARGET OpenMP::OpenMP_CXX - PROPERTY INTERFACE_LINK_LIBRARIES ${OpenMP_CXX_FLAGS} Threads::Threads) - endif() + find_package(OpenMP REQUIRED) target_link_libraries(ensmallen INTERFACE OpenMP::OpenMP_CXX) endif() # Find Armadillo and link it. -find_package(Armadillo 9.800.0 REQUIRED) -target_link_libraries(ensmallen INTERFACE Armadillo::Armadillo) +find_package(Armadillo CONFIG REQUIRED) +target_link_libraries(ensmallen INTERFACE armadillo) # Set helper variables for creating the version, config and target files. include(CMakePackageConfigHelpers)