FindCEF.cmake 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. include(FindPackageHandleStandardArgs)
  2. set_property(CACHE CEF_ROOT_DIR PROPERTY HELPSTRING
  3. "Path to CEF distributed build")
  4. if(NOT DEFINED CEF_ROOT_DIR OR CEF_ROOT_DIR STREQUAL "")
  5. message(
  6. FATAL_ERROR
  7. "CEF_ROOT_DIR is not set - if ENABLE_BROWSER is enabled, a CEF distribution with compiled wrapper library is required.\n"
  8. "Please download a CEF distribution for your appropriate architecture and specify CEF_ROOT_DIR to its location"
  9. )
  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"
  23. "${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Release"
  24. "${CEF_ROOT_DIR}/build/libcef_dll"
  25. "${CEF_ROOT_DIR}/build/libcef_dll_wrapper")
  26. elseif(OS_POSIX)
  27. find_library(
  28. CEF_LIBRARY
  29. NAMES libcef.so "Chromium Embedded Framework"
  30. NO_DEFAULT_PATH
  31. PATHS "${CEF_ROOT_DIR}" "${CEF_ROOT_DIR}/Release")
  32. find_library(
  33. CEFWRAPPER_LIBRARY
  34. NAMES libcef_dll_wrapper.a
  35. NO_DEFAULT_PATH
  36. PATHS "${CEF_ROOT_DIR}/build/libcef_dll_wrapper"
  37. "${CEF_ROOT_DIR}/libcef_dll_wrapper")
  38. else()
  39. find_library(
  40. CEF_LIBRARY
  41. NAMES cef libcef cef.lib libcef.o "Chromium Embedded Framework"
  42. PATHS "${CEF_ROOT_DIR}" "${CEF_ROOT_DIR}/Release")
  43. find_library(
  44. CEFWRAPPER_LIBRARY
  45. NAMES cef_dll_wrapper libcef_dll_wrapper
  46. PATHS "${CEF_ROOT_DIR}/build/libcef_dll/Release"
  47. "${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Release"
  48. "${CEF_ROOT_DIR}/build/libcef_dll"
  49. "${CEF_ROOT_DIR}/build/libcef_dll_wrapper")
  50. if(OS_WINDOWS)
  51. find_library(
  52. CEFWRAPPER_LIBRARY_DEBUG
  53. NAMES cef_dll_wrapper libcef_dll_wrapper
  54. PATHS "${CEF_ROOT_DIR}/build/libcef_dll/Debug"
  55. "${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Debug")
  56. endif()
  57. endif()
  58. mark_as_advanced(CEFWRAPPER_LIBRARY CEFWRAPPER_LIBRARY_DEBUG)
  59. if(NOT CEF_LIBRARY)
  60. message(
  61. WARNING
  62. " Could NOT find Chromium Embedded Framework library (missing: CEF_LIBRARY)"
  63. )
  64. set(CEF_FOUND FALSE)
  65. return()
  66. endif()
  67. if(NOT CEFWRAPPER_LIBRARY)
  68. message(
  69. WARNING
  70. " Could NOT find Chromium Embedded Framework wrapper library (missing: CEFWRAPPER_LIBRARY)"
  71. )
  72. set(CEF_FOUND FALSE)
  73. return()
  74. endif()
  75. message(
  76. STATUS
  77. "Found Chromium Embedded Framework: ${CEF_LIBRARY};${CEF_WRAPPER_LIBRARY}")
  78. if(OS_WINDOWS)
  79. set(CEF_LIBRARIES ${CEF_LIBRARY} ${CEFWRAPPER_LIBRARY})
  80. elseif(OS_MACOS)
  81. if(BROWSER_LEGACY)
  82. set(CEF_LIBRARIES ${CEFWRAPPER_LIBRARY} ${CEF_LIBRARY})
  83. else()
  84. set(CEF_LIBRARIES ${CEFWRAPPER_LIBRARY})
  85. endif()
  86. else()
  87. set(CEF_LIBRARIES ${CEF_LIBRARY} optimized ${CEFWRAPPER_LIBRARY})
  88. if(CEFWRAPPER_LIBRARY_DEBUG)
  89. list(APPEND CEF_LIBRARIES debug ${CEFWRAPPER_LIBRARY_DEBUG})
  90. endif()
  91. endif()
  92. find_package_handle_standard_args(CEF DEFAULT_MSG CEF_LIBRARY
  93. CEFWRAPPER_LIBRARY CEF_INCLUDE_DIR)
  94. mark_as_advanced(CEF_LIBRARY CEF_WRAPPER_LIBRARY CEF_LIBRARIES CEF_INCLUDE_DIR)
  95. if(NOT TARGET CEF::Wrapper)
  96. if(IS_ABSOLUTE "${CEF_LIBRARIES}")
  97. add_library(CEF::Wrapper UNKNOWN IMPORTED)
  98. add_library(CEF::Library UNKNOWN IMPORTED)
  99. set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LOCATION
  100. ${CEFWRAPPER_LIBRARY})
  101. set_target_properties(CEF::Library PROPERTIES IMPORTED_LOCATION
  102. ${CEF_LIBRARY})
  103. if(DEFINED CEFWRAPPER_LIBRARY_DEBUG)
  104. add_library(CEF::Wrapper_Debug UNKNOWN IMPORTED)
  105. set_target_properties(
  106. CEF::Wrapper_Debug PROPERTIES IMPORTED_LOCATION
  107. ${CEFWRAPPER_LIBRARY_DEBUG})
  108. endif()
  109. else()
  110. add_library(CEF::Wrapper INTERFACE IMPORTED)
  111. add_library(CEF::Library INTERFACE IMPORTED)
  112. set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LIBNAME
  113. ${CEFWRAPPER_LIBRARY})
  114. set_target_properties(CEF::Library PROPERTIES IMPORTED_LIBNAME
  115. ${CEF_LIBRARY})
  116. if(DEFINED CEFWRAPPER_LIBRARY_DEBUG)
  117. add_library(CEF::Wrapper_Debug INTERFACE IMPORTED)
  118. set_target_properties(
  119. CEF::Wrapper_Debug PROPERTIES IMPORTED_LIBNAME
  120. ${CEFWRAPPER_LIBRARY_DEBUG})
  121. endif()
  122. endif()
  123. set_target_properties(CEF::Wrapper PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
  124. "${CEF_INCLUDE_DIR}")
  125. set_target_properties(CEF::Library PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
  126. "${CEF_INCLUDE_DIR}")
  127. if(DEFINED CEFWRAPPER_LIBRARY_DEBUG)
  128. set_target_properties(
  129. CEF::Wrapper_Debug PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
  130. "${CEF_INCLUDE_DIR}")
  131. endif()
  132. endif()