MSCG.cmake: create an use imported target
This commit is contained in:
@ -10,13 +10,23 @@ find_path(MSCG_INCLUDE_DIR mscg.h PATH_SUFFIXES mscg)
|
|||||||
|
|
||||||
find_library(MSCG_LIBRARY NAMES mscg)
|
find_library(MSCG_LIBRARY NAMES mscg)
|
||||||
|
|
||||||
set(MSCG_LIBRARIES ${MSCG_LIBRARY})
|
|
||||||
set(MSCG_INCLUDE_DIRS ${MSCG_INCLUDE_DIR})
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
# handle the QUIETLY and REQUIRED arguments and set MSCG_FOUND to TRUE
|
# handle the QUIETLY and REQUIRED arguments and set MSCG_FOUND to TRUE
|
||||||
# if all listed variables are TRUE
|
# if all listed variables are TRUE
|
||||||
|
|
||||||
find_package_handle_standard_args(MSCG DEFAULT_MSG MSCG_LIBRARY MSCG_INCLUDE_DIR)
|
find_package_handle_standard_args(MSCG DEFAULT_MSG MSCG_LIBRARY MSCG_INCLUDE_DIR)
|
||||||
|
|
||||||
|
# Copy the results to the output variables and target.
|
||||||
|
if(MSCG_FOUND)
|
||||||
|
set(MSCG_LIBRARIES ${MSCG_LIBRARY})
|
||||||
|
set(MSCG_INCLUDE_DIRS ${MSCG_INCLUDE_DIR})
|
||||||
|
|
||||||
|
if(NOT TARGET MSCG::MSCG)
|
||||||
|
add_library(MSCG::MSCG UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(MSCG::MSCG PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${MSCG_LIBRARY}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${MSCG_INCLUDE_DIR}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
mark_as_advanced(MSCG_INCLUDE_DIR MSCG_LIBRARY )
|
mark_as_advanced(MSCG_INCLUDE_DIR MSCG_LIBRARY )
|
||||||
|
|||||||
@ -29,12 +29,17 @@ if(PKG_MSCG)
|
|||||||
BUILD_BYPRODUCTS <BINARY_DIR>/libmscg.a
|
BUILD_BYPRODUCTS <BINARY_DIR>/libmscg.a
|
||||||
)
|
)
|
||||||
ExternalProject_get_property(mscg_build BINARY_DIR)
|
ExternalProject_get_property(mscg_build BINARY_DIR)
|
||||||
set(MSCG_LIBRARIES ${BINARY_DIR}/libmscg.a)
|
|
||||||
ExternalProject_get_property(mscg_build SOURCE_DIR)
|
ExternalProject_get_property(mscg_build SOURCE_DIR)
|
||||||
set(MSCG_INCLUDE_DIRS ${SOURCE_DIR}/src)
|
set(MSCG_INCLUDE_DIRS ${SOURCE_DIR}/src)
|
||||||
|
if(NOT TARGET MSCG::MSCG)
|
||||||
|
add_library(MSCG::MSCG UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(MSCG::MSCG PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${BINARY_DIR}/libmscg.a"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${MSCG_INCLUDE_DIRS}")
|
||||||
|
endif()
|
||||||
add_dependencies(lammps mscg_build)
|
add_dependencies(lammps mscg_build)
|
||||||
if(NOT LAPACK_FOUND)
|
if(NOT LAPACK_FOUND)
|
||||||
file(MAKE_DIRECTORY ${MSCG_INCLUDE_DIRS})
|
file(MAKE_DIRECTORY )
|
||||||
add_dependencies(mscg_build linalg)
|
add_dependencies(mscg_build linalg)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
@ -43,6 +48,5 @@ if(PKG_MSCG)
|
|||||||
message(FATAL_ERROR "MSCG not found, help CMake to find it by setting MSCG_LIBRARY and MSCG_INCLUDE_DIRS, or set DOWNLOAD_MSCG=ON to download it")
|
message(FATAL_ERROR "MSCG not found, help CMake to find it by setting MSCG_LIBRARY and MSCG_INCLUDE_DIRS, or set DOWNLOAD_MSCG=ON to download it")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(lammps PRIVATE ${MSCG_LIBRARIES} GSL::gsl ${LAPACK_LIBRARIES})
|
target_link_libraries(lammps PRIVATE MSCG::MSCG GSL::gsl ${LAPACK_LIBRARIES})
|
||||||
include_directories(${MSCG_INCLUDE_DIRS})
|
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
Reference in New Issue
Block a user