FindCEF.cmake 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. include(FindPackageHandleStandardArgs)
  2. set(CEF_ROOT_DIR
  3. ""
  4. CACHE PATH "Path to CEF distributed build")
  5. if(NOT DEFINED CEF_ROOT_DIR OR CEF_ROOT_DIR STREQUAL "")
  6. message(
  7. FATAL_ERROR
  8. "CEF_ROOT_DIR is not set - if ENABLE_BROWSER is enabled, a CEF distribution with compiled wrapper library is required.\n"
  9. "Please download a CEF distribution for your appropriate architecture and specify CEF_ROOT_DIR to its location")
  10. endif()
  11. find_path(CEF_INCLUDE_DIR "include/cef_version.h" HINTS ${CEF_ROOT_DIR})
  12. if(OS_MACOS)
  13. find_library(
  14. CEF_LIBRARY
  15. NAMES cef libcef cef.lib libcef.o "Chromium Embedded Framework"
  16. NO_DEFAULT_PATH
  17. PATHS ${CEF_ROOT_DIR} ${CEF_ROOT_DIR}/Release)
  18. find_library(
  19. CEFWRAPPER_LIBRARY
  20. NAMES cef_dll_wrapper libcef_dll_wrapper
  21. NO_DEFAULT_PATH
  22. PATHS ${CEF_ROOT_DIR}/build/libcef_dll/Release ${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Release
  23. ${CEF_ROOT_DIR}/build/libcef_dll ${CEF_ROOT_DIR}/build/libcef_dll_wrapper)
  24. elseif(OS_POSIX)
  25. find_library(
  26. CEF_LIBRARY
  27. NAMES libcef.so "Chromium Embedded Framework"
  28. NO_DEFAULT_PATH
  29. PATHS ${CEF_ROOT_DIR} ${CEF_ROOT_DIR}/Release)
  30. find_library(
  31. CEFWRAPPER_LIBRARY
  32. NAMES libcef_dll_wrapper.a
  33. NO_DEFAULT_PATH
  34. PATHS ${CEF_ROOT_DIR}/build/libcef_dll_wrapper ${CEF_ROOT_DIR}/libcef_dll_wrapper)
  35. else()
  36. find_library(
  37. CEF_LIBRARY
  38. NAMES cef libcef cef.lib libcef.o "Chromium Embedded Framework"
  39. PATHS ${CEF_ROOT_DIR} ${CEF_ROOT_DIR}/Release)
  40. find_library(
  41. CEFWRAPPER_LIBRARY
  42. NAMES cef_dll_wrapper libcef_dll_wrapper
  43. PATHS ${CEF_ROOT_DIR}/build/libcef_dll/Release ${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Release
  44. ${CEF_ROOT_DIR}/build/libcef_dll ${CEF_ROOT_DIR}/build/libcef_dll_wrapper)
  45. if(OS_WINDOWS)
  46. find_library(
  47. CEFWRAPPER_LIBRARY_DEBUG
  48. NAMES cef_dll_wrapper libcef_dll_wrapper
  49. PATHS ${CEF_ROOT_DIR}/build/libcef_dll/Debug ${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Debug)
  50. endif()
  51. endif()
  52. mark_as_advanced(CEFWRAPPER_LIBRARY CEFWRAPPER_LIBRARY_DEBUG)
  53. if(NOT CEF_LIBRARY)
  54. message(WARNING "Could NOT find Chromium Embedded Framework library (missing: CEF_LIBRARY)")
  55. set(CEF_FOUND FALSE)
  56. return()
  57. endif()
  58. if(NOT CEFWRAPPER_LIBRARY)
  59. message(WARNING "Could NOT find Chromium Embedded Framework wrapper library (missing: CEFWRAPPER_LIBRARY)")
  60. set(CEF_FOUND FALSE)
  61. return()
  62. endif()
  63. message(STATUS "Found Chromium Embedded Framework: ${CEF_LIBRARY};${CEF_WRAPPER_LIBRARY}")
  64. if(OS_WINDOWS)
  65. set(CEF_LIBRARIES ${CEF_LIBRARY} ${CEFWRAPPER_LIBRARY})
  66. elseif(OS_MACOS)
  67. if(BROWSER_LEGACY)
  68. set(CEF_LIBRARIES ${CEFWRAPPER_LIBRARY} ${CEF_LIBRARY})
  69. else()
  70. set(CEF_LIBRARIES ${CEFWRAPPER_LIBRARY})
  71. endif()
  72. else()
  73. set(CEF_LIBRARIES ${CEF_LIBRARY} optimized ${CEFWRAPPER_LIBRARY})
  74. if(CEFWRAPPER_LIBRARY_DEBUG)
  75. list(APPEND CEF_LIBRARIES debug ${CEFWRAPPER_LIBRARY_DEBUG})
  76. endif()
  77. endif()
  78. find_package_handle_standard_args(CEF DEFAULT_MSG CEF_LIBRARY CEFWRAPPER_LIBRARY CEF_INCLUDE_DIR)
  79. mark_as_advanced(CEF_LIBRARY CEF_WRAPPER_LIBRARY CEF_LIBRARIES CEF_INCLUDE_DIR)
  80. if(NOT TARGET CEF::Wrapper)
  81. if(IS_ABSOLUTE "${CEF_LIBRARIES}")
  82. add_library(CEF::Wrapper UNKNOWN IMPORTED)
  83. add_library(CEF::Library UNKNOWN IMPORTED)
  84. set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LOCATION ${CEFWRAPPER_LIBRARY})
  85. set_target_properties(CEF::Library PROPERTIES IMPORTED_LOCATION ${CEF_LIBRARY})
  86. if(DEFINED CEFWRAPPER_LIBRARY_DEBUG)
  87. set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LOCATION_DEBUG ${CEFWRAPPER_LIBRARY_DEBUG})
  88. endif()
  89. else()
  90. add_library(CEF::Wrapper INTERFACE IMPORTED)
  91. add_library(CEF::Library INTERFACE IMPORTED)
  92. set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LIBNAME ${CEFWRAPPER_LIBRARY})
  93. set_target_properties(CEF::Library PROPERTIES IMPORTED_LIBNAME ${CEF_LIBRARY})
  94. if(DEFINED CEFWRAPPER_LIBRARY_DEBUG)
  95. set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LIBNAME_DEBUG ${CEFWRAPPER_LIBRARY_DEBUG})
  96. endif()
  97. endif()
  98. set_target_properties(CEF::Wrapper PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CEF_INCLUDE_DIR}")
  99. set_target_properties(CEF::Library PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CEF_INCLUDE_DIR}")
  100. endif()