cgal.cmake 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. if(TARGET CGAL::CGAL)
  2. return()
  3. endif()
  4. message(STATUS "Third-party: creating target 'CGAL::CGAL'")
  5. include(FetchContent)
  6. FetchContent_Declare(
  7. cgal
  8. URL https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1-library.tar.xz
  9. URL_MD5 ea827f6778063e00554ae41f4c845492
  10. )
  11. FetchContent_GetProperties(cgal)
  12. if(cgal_POPULATED)
  13. return()
  14. endif()
  15. FetchContent_Populate(cgal)
  16. function(cgal_import_target)
  17. macro(ignore_package NAME VERSION_NUM)
  18. include(CMakePackageConfigHelpers)
  19. file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${NAME}/${NAME}Config.cmake "")
  20. write_basic_package_version_file(
  21. ${CMAKE_CURRENT_BINARY_DIR}/${NAME}/${NAME}ConfigVersion.cmake
  22. VERSION ${VERSION_NUM}
  23. COMPATIBILITY AnyNewerVersion
  24. )
  25. set(${NAME}_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NAME} CACHE PATH "")
  26. set(${NAME}_ROOT ${CMAKE_CURRENT_BINARY_DIR}/${NAME} CACHE PATH "")
  27. endmacro()
  28. include(boost)
  29. ignore_package(Boost 1.71.0)
  30. set(Boost_INCLUDE_DIRS "")
  31. set(Boost_LIBRARIES Boost::thread Boost::system Boost::multiprecision)
  32. # Prefer Config mode before Module mode to prevent CGAL from loading its own FindXXX.cmake
  33. set(CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE)
  34. # https://stackoverflow.com/a/71714947/148668
  35. set(CGAL_DATA_DIR "unspecified")
  36. set(CGAL_CMAKE_EXACT_NT_BACKEND "BOOST_BACKEND" CACHE STRING "CGAL exact NT backend")
  37. set(CGAL_DISABLE_GMP ON CACHE BOOL "Disable GMP")
  38. find_package(CGAL CONFIG COMPONENTS Core PATHS ${cgal_SOURCE_DIR} NO_DEFAULT_PATH)
  39. endfunction()
  40. cgal_import_target()