FindFFlags.cmake 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. include(FindPackageHandleStandardArgs)
  2. set(_root ${FFlags_ROOT})
  3. if (NOT _root)
  4. find_package_handle_standard_args(FFlags
  5. FOUND_VAR FFlags_FOUND
  6. REQUIRED_VARS _root) # 强制搜不到包
  7. unset(_root)
  8. endif()
  9. # FFlags_ROOT 必须是 FFlags的安装目录
  10. # FFlags
  11. find_path(fflags_h NAMES fflags.h HINTS ${_root}/include DOC "FFlags include directory" NO_DEFAULT_PATH)
  12. find_library(fflags_lib NAMES FFlags libFFlags HINTS ${_root}/lib DOC "FFlags library" NO_DEFAULT_PATH)
  13. set(fflags_INCLUDE_DIRS ${fflags_h})
  14. set(fflags_LIBRARIES ${fflags_lib})
  15. unset(fflags_h CACHE)
  16. unset(fflags_lib CACHE)
  17. find_package_handle_standard_args(FFlags
  18. FOUND_VAR FFlags_FOUND
  19. REQUIRED_VARS
  20. fflags_INCLUDE_DIRS
  21. fflags_LIBRARIES) # 强制搜不到包
  22. if (FFlags_FOUND)
  23. add_library(FFlags::fflags STATIC IMPORTED)
  24. set_target_properties(FFlags::fflags PROPERTIES
  25. IMPORTED_LOCATION "${fflags_LIBRARIES}"
  26. INTERFACE_INCLUDE_DIRECTORIES "${fflags_INCLUDE_DIRS}"
  27. INTERFACE_SOURCES "${fflags_INCLUDE_DIRS}/fflags.h"
  28. PUBLIC_HEADER "${fflags_INCLUDE_DIRS}/fflags.h")
  29. endif()