#################################################### # Looking for main header file in standard locations find_path(gmpc_INCLUDE_DIR gmp.h) find_path(gmpxx_INCLUDE_DIR gmpxx.h) ############################################ # Looking for binaries in standard locations find_library(gmpc_LIBRARY NAMES gmp libgmp) find_library(gmpxx_LIBRARY NAMES gmpxx libgmpxx) mark_as_advanced(gmpc_INCLUDE_DIR gmpc_LIBRARY gmpxx_INCLUDE_DIR gmpxx_LIBRARY) ############################# # Setting find_package output # gmp_FOUND # Cache variables # gmp_INCLUDE_DIR # gmp_LIBRARY # CMakeLists variables # gmp_INCLUDE_DIRS # gmp_LIBRARIES include( FindPackageHandleStandardArgs ) find_package_handle_standard_args(gmp REQUIRED_VARS gmpc_LIBRARY gmpxx_LIBRARY gmpc_INCLUDE_DIR gmpxx_INCLUDE_DIR ) SET(gmpc_LIBRARIES ${gmpc_LIBRARY}) SET(gmpc_INCLUDE_DIRS ${gmpc_INCLUDE_DIR}) SET(gmpxx_LIBRARIES ${gmpxx_LIBRARY}) SET(gmpxx_INCLUDE_DIRS ${gmpxx_INCLUDE_DIR}) ################################## # Setting gmp::gmp IF (NOT TARGET gmp::gmpc) add_library(gmp::gmpc UNKNOWN IMPORTED) set_target_properties(gmp::gmpc PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" IMPORTED_LOCATION "${gmpc_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${gmpc_INCLUDE_DIR}" ) ENDIF() SET(GMPC_TARGET "gmp::gmpc") IF (NOT TARGET gmp::gmpxx) add_library(gmp::gmpxx UNKNOWN IMPORTED) set_target_properties(gmp::gmpxx PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" IMPORTED_LOCATION "${gmpxx_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${gmpxx_INCLUDE_DIR}" ) ENDIF() SET(GMPXX_TARGET "gmp::gmpxx") IF (NOT TARGET gmp::gmp) add_library(gmp::gmp UNKNOWN IMPORTED) SET(GMP_TARGET "${GMPC_TARGET};${GMPXX_TARGET}") set_target_properties(gmp::gmp PROPERTIES LINK_INTERFACE_LIBRARIES "gmp::gmpc" LINK_INTERFACE_LIBRARIES "gmp::gmpxx" IMPORTED_LOCATION "${gmpc_LIBRARY}" IMPORTED_LOCATION "${gmpxx_LIBRARY}") ENDIF()