FindCEF.cmake 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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. )
  11. endif()
  12. find_path(CEF_INCLUDE_DIR "include/cef_version.h" HINTS ${CEF_ROOT_DIR})
  13. if(OS_MACOS)
  14. find_library(
  15. CEF_LIBRARY
  16. NAMES cef libcef cef.lib libcef.o "Chromium Embedded Framework"
  17. NO_DEFAULT_PATH
  18. PATHS ${CEF_ROOT_DIR} ${CEF_ROOT_DIR}/Release)
  19. find_library(
  20. CEFWRAPPER_LIBRARY
  21. NAMES cef_dll_wrapper libcef_dll_wrapper
  22. NO_DEFAULT_PATH
  23. PATHS ${CEF_ROOT_DIR}/build/libcef_dll/Release
  24. ${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Release
  25. ${CEF_ROOT_DIR}/build/libcef_dll
  26. ${CEF_ROOT_DIR}/build/libcef_dll_wrapper)
  27. elseif(OS_POSIX)
  28. find_library(
  29. CEF_LIBRARY
  30. NAMES libcef.so "Chromium Embedded Framework"
  31. NO_DEFAULT_PATH
  32. PATHS ${CEF_ROOT_DIR} ${CEF_ROOT_DIR}/Release)
  33. find_library(
  34. CEFWRAPPER_LIBRARY
  35. NAMES libcef_dll_wrapper.a
  36. NO_DEFAULT_PATH
  37. PATHS ${CEF_ROOT_DIR}/build/libcef_dll_wrapper
  38. ${CEF_ROOT_DIR}/libcef_dll_wrapper)
  39. else()
  40. find_library(
  41. CEF_LIBRARY
  42. NAMES cef libcef cef.lib libcef.o "Chromium Embedded Framework"
  43. PATHS ${CEF_ROOT_DIR} ${CEF_ROOT_DIR}/Release)
  44. find_library(
  45. CEFWRAPPER_LIBRARY
  46. NAMES cef_dll_wrapper libcef_dll_wrapper
  47. PATHS ${CEF_ROOT_DIR}/build/libcef_dll/Release
  48. ${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Release
  49. ${CEF_ROOT_DIR}/build/libcef_dll
  50. ${CEF_ROOT_DIR}/build/libcef_dll_wrapper)
  51. if(OS_WINDOWS)
  52. find_library(
  53. CEFWRAPPER_LIBRARY_DEBUG
  54. NAMES cef_dll_wrapper libcef_dll_wrapper
  55. PATHS ${CEF_ROOT_DIR}/build/libcef_dll/Debug
  56. ${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Debug)
  57. endif()
  58. endif()
  59. mark_as_advanced(CEFWRAPPER_LIBRARY CEFWRAPPER_LIBRARY_DEBUG)
  60. if(NOT CEF_LIBRARY)
  61. message(
  62. WARNING
  63. "Could NOT find Chromium Embedded Framework library (missing: CEF_LIBRARY)"
  64. )
  65. set(CEF_FOUND FALSE)
  66. return()
  67. endif()
  68. if(NOT CEFWRAPPER_LIBRARY)
  69. message(
  70. WARNING
  71. "Could NOT find Chromium Embedded Framework wrapper library (missing: CEFWRAPPER_LIBRARY)"
  72. )
  73. set(CEF_FOUND FALSE)
  74. return()
  75. endif()
  76. message(
  77. STATUS
  78. "Found Chromium Embedded Framework: ${CEF_LIBRARY};${CEF_WRAPPER_LIBRARY}")
  79. if(OS_WINDOWS)
  80. set(CEF_LIBRARIES ${CEF_LIBRARY} ${CEFWRAPPER_LIBRARY})
  81. elseif(OS_MACOS)
  82. if(BROWSER_LEGACY)
  83. set(CEF_LIBRARIES ${CEFWRAPPER_LIBRARY} ${CEF_LIBRARY})
  84. else()
  85. set(CEF_LIBRARIES ${CEFWRAPPER_LIBRARY})
  86. endif()
  87. else()
  88. set(CEF_LIBRARIES ${CEF_LIBRARY} optimized ${CEFWRAPPER_LIBRARY})
  89. if(CEFWRAPPER_LIBRARY_DEBUG)
  90. list(APPEND CEF_LIBRARIES debug ${CEFWRAPPER_LIBRARY_DEBUG})
  91. endif()
  92. endif()
  93. find_package_handle_standard_args(CEF DEFAULT_MSG CEF_LIBRARY
  94. CEFWRAPPER_LIBRARY CEF_INCLUDE_DIR)
  95. mark_as_advanced(CEF_LIBRARY CEF_WRAPPER_LIBRARY CEF_LIBRARIES CEF_INCLUDE_DIR)
  96. if(NOT TARGET CEF::Wrapper)
  97. if(IS_ABSOLUTE "${CEF_LIBRARIES}")
  98. add_library(CEF::Wrapper UNKNOWN IMPORTED)
  99. add_library(CEF::Library UNKNOWN IMPORTED)
  100. set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LOCATION
  101. ${CEFWRAPPER_LIBRARY})
  102. set_target_properties(CEF::Library PROPERTIES IMPORTED_LOCATION
  103. ${CEF_LIBRARY})
  104. if(DEFINED CEFWRAPPER_LIBRARY_DEBUG)
  105. set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LOCATION_DEBUG
  106. ${CEFWRAPPER_LIBRARY_DEBUG})
  107. endif()
  108. else()
  109. add_library(CEF::Wrapper INTERFACE IMPORTED)
  110. add_library(CEF::Library INTERFACE IMPORTED)
  111. set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LIBNAME
  112. ${CEFWRAPPER_LIBRARY})
  113. set_target_properties(CEF::Library PROPERTIES IMPORTED_LIBNAME
  114. ${CEF_LIBRARY})
  115. if(DEFINED CEFWRAPPER_LIBRARY_DEBUG)
  116. set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LIBNAME_DEBUG
  117. ${CEFWRAPPER_LIBRARY_DEBUG})
  118. endif()
  119. endif()
  120. set_target_properties(CEF::Wrapper PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
  121. "${CEF_INCLUDE_DIR}")
  122. set_target_properties(CEF::Library PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
  123. "${CEF_INCLUDE_DIR}")
  124. endif()