Advertisement
Guest User

Untitled

a guest
Nov 12th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 6.93 KB | None | 0 0
  1. #CMakeList.txt SRC:
  2.  
  3.     cmake_minimum_required(VERSION 3.6)
  4.     project(sielo-browser)
  5.    
  6.     add_subdirectory(Core)
  7.     add_subdirectory(SNCompiler)
  8.     include_directories(${CMAKE_SOURCE_DIR})
  9.     include_directories(${CMAKE_SOURCE_DIR}/Core)
  10.     include_directories(${CMAKE_SOURCE_DIR}/third-party/includes)
  11.    
  12.     if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 8)
  13.         # 64bit
  14.         set (CMAKE_PREFIX_PATH "C:\\Qt\\5.11.2\\msvc2017_64\\")
  15.         set (ENV{OPENSSL_ROOT_DIR} "${CMAKE_SOURCE_DIR}\\third-party\\openssl\\windows\\x64\\")
  16.         set (ENV{OPENSSL_CRYPTO_LIBRARY} "${CMAKE_SOURCE_DIR}\\third-party\\openssl\\windows\\x64\\")
  17.     elseif(WIN32)
  18.         set (CMAKE_PREFIX_PATH "C:\\Qt\\5.11.0\\msvc2015\\")
  19.         set (ENV{OPENSSL_ROOT_DIR} "${CMAKE_SOURCE_DIR}\\third-party\\openssl\\windows\\x86\\")
  20.         set (ENV{OPENSSL_CRYPTO_LIBRARY} "${CMAKE_SOURCE_DIR}\\third-party\\openssl\\windows\\x86\\")
  21.     elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  22.         set(ICON_NAME "icon.icns")
  23.         set(ICON_PATH "${CMAKE_SOURCE_DIR}/${ICON_NAME}")
  24.         set (CMAKE_PREFIX_PATH "/Users/LaurentBessel/Qt/5.11.1/clang_64/")
  25.         set (ENV{OPENSSL_ROOT_DIR} "${CMAKE_SOURCE_DIR}/third-party/openssl/macos/")
  26.         set (ENV{OPENSSL_CRYPTO_LIBRARY} "${CMAKE_SOURCE_DIR}/third-party/openssl/macos/")
  27.     endif()
  28.    
  29.     if(GNU)
  30.         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
  31.     endif()
  32.    
  33.     set(SOURCE_FILES Main.cpp)
  34.     set(CMAKE_CXX_STANDARD 17)
  35.     set(CMAKE_AUTOMOC ON)
  36.     set(CMAKE_AUTORCC ON)
  37.    
  38.     file(
  39.             GLOB_RECURSE
  40.             QRC_FILES
  41.                     *.qrc
  42.     )
  43.    
  44.     find_package(OpenSSL 1.1.0 REQUIRED)
  45.     find_package(Qt5Widgets 5.8 REQUIRED)
  46.     find_package(Qt5WebEngine 5.8 REQUIRED)
  47.     find_package(Qt5Sql 5.8 REQUIRED)
  48.     find_package(Qt5WebEngineWidgets 5.8 REQUIRED)
  49.    
  50.     if (WIN32)
  51.         add_executable(sielo-browser WIN32 ${SOURCE_FILES} ${QRC_FILES} ic_sielo.rc)
  52.    
  53.         # deploy
  54.         get_target_property(QT5_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION)
  55.         get_filename_component(QT5_WINDEPLOYQT_EXECUTABLE ${QT5_QMAKE_EXECUTABLE} PATH)
  56.         set(QT5_WINDEPLOYQT_EXECUTABLE "${QT5_WINDEPLOYQT_EXECUTABLE}/windeployqt.exe")
  57.    
  58.     elseif(APPLE)
  59.         add_executable(sielo-browser MACOSX_BUNDLE ${SOURCE_FILES} ${ICON_PATH} ${QRC_FILES})
  60.         set_source_files_properties(${ICON_PATH} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
  61.         set_target_properties(sielo-browser PROPERTIES MACOSX_BUNDLE_ICON_FILE ${ICON_NAME})
  62.     else()
  63.         add_executable(sielo-browser ${SOURCE_FILES} ${QRC_FILES})
  64.     endif()
  65.    
  66.     if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 8)
  67.         add_custom_command(TARGET sielo-browser POST_BUILD
  68.                 COMMAND ${QT5_WINDEPLOYQT_EXECUTABLE} --qmldir ${CMAKE_SOURCE_DIR} $<TARGET_FILE_DIR:sielo-browser>)
  69.                             file(GLOB OPENSSL_CRYPTO_DLLS "${CMAKE_SOURCE_DIR}/third-party/openssl/windows/x64/bin/*.dll")
  70.                             file(COPY ${OPENSSL_CRYPTO_DLLS} DESTINATION Release)
  71.     elseif(WIN32)
  72.             add_custom_command(TARGET sielo-browser POST_BUILD
  73.                 COMMAND ${QT5_WINDEPLOYQT_EXECUTABLE} --qmldir ${CMAKE_SOURCE_DIR} $<TARGET_FILE_DIR:sielo-browser>)
  74.                             file(GLOB OPENSSL_CRYPTO_DLLS "${CMAKE_SOURCE_DIR}/third-party/openssl/windows/x86/bin/*.dll")
  75.                             file(COPY ${OPENSSL_CRYPTO_DLLS} DESTINATION Release)
  76.     endif()
  77.    
  78.     set(SIELO_LIBS Core ${OPENSSL_LIBRARIES} Qt5::Widgets Qt5::WebEngine Qt5::Sql Qt5::WebEngineWidgets AppKit)
  79.     if(WIN32)
  80.             set(SIELO_LIBS ${SIELO_LIBS} dwmapi uxtheme)
  81.     endif()
  82.     target_link_libraries(sielo-browser LINK_PUBLIC ${SIELO_LIBS})
  83.  
  84. #-----------------------------------------------------------------------
  85.  
  86. #CMakeList.txt Core:
  87.  
  88.     cmake_minimum_required(VERSION 3.6)
  89.     project(Core)
  90.    
  91.     include_directories(${CMAKE_SOURCE_DIR}/Core)
  92.     include_directories(${CMAKE_SOURCE_DIR}/third-party/includes)
  93.    
  94.     if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 8)
  95.         # 64bit
  96.         set (CMAKE_PREFIX_PATH "C:\\Qt\\5.11.2\\msvc2017_64\\")
  97.         set (ENV{OPENSSL_ROOT_DIR} "${CMAKE_SOURCE_DIR}\\third-party\\openssl\\windows\\x64\\")
  98.         set (ENV{OPENSSL_CRYPTO_LIBRARY} "${CMAKE_SOURCE_DIR}\\third-party\\openssl\\windows\\x64\\")
  99.     elseif(WIN32)
  100.         set (CMAKE_PREFIX_PATH "C:\\Qt\\5.11.0\\msvc2015\\")
  101.         set (ENV{OPENSSL_ROOT_DIR} "${CMAKE_SOURCE_DIR}\\third-party\\openssl\\windows\\x86\\")
  102.         set (ENV{OPENSSL_CRYPTO_LIBRARY} "${CMAKE_SOURCE_DIR}\\third-party\\openssl\\windows\\x86\\")
  103.     elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  104.         set (CMAKE_PREFIX_PATH "/Users/LaurentBessel/Qt/5.11.1/clang_64/")
  105.         set (ENV{OPENSSL_ROOT_DIR} "${CMAKE_SOURCE_DIR}/third-party/openssl/macos/")
  106.         set (ENV{OPENSSL_CRYPTO_LIBRARY} "${CMAKE_SOURCE_DIR}/third-party/openssl/macos/")
  107.     endif()
  108.    
  109.    
  110.    
  111.     if(GNU)
  112.         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
  113.     endif()
  114.    
  115.     set(CMAKE_CXX_STANDARD 17)
  116.     set(CMAKE_AUTOMOC ON)
  117.     set(CMAKE_AUTORCC ON)
  118.    
  119.     file(
  120.             GLOB_RECURSE
  121.             SOURCE_FILES
  122.             3rdparty/*.h
  123.             3rdparty/*.cpp
  124.             AdBlock/*.hpp
  125.             AdBlock/*.cpp
  126.             Bookmarks/*.cpp
  127.             Bookmarks/*.hpp
  128.             Cookies/*.hpp
  129.             Cookies/*.cpp
  130.             Database/*.hpp
  131.             Database/*.cpp
  132.             Download/*.cpp
  133.             Download/*.hpp
  134.             History/*.cpp
  135.             History/*.hpp
  136.                     MaquetteGrid/*.cpp
  137.                     MaquetteGrid/*.hpp
  138.             Network/*.cpp
  139.             Network/*.hpp
  140.             Password/*.cpp
  141.             Password/*.hpp
  142.             Plugins/*.cpp
  143.             Plugins/*.hpp
  144.             Utils/*.cpp
  145.             Utils/*.hpp
  146.             View/*.cpp
  147.             View/*.hpp
  148.             Web/*.cpp
  149.             Web/*.hpp
  150.             Widgets/*.cpp
  151.             Widgets/*.hpp
  152.             Application.mm
  153.             Application.hpp
  154.             BrowserWindow.hpp
  155.             BrowserWindow.cpp
  156.     )
  157.    
  158.     find_package(OpenSSL 1.1.0 REQUIRED)
  159.     find_package(Qt5Widgets 5.8 REQUIRED)
  160.     find_package(Qt5Sql 5.8 REQUIRED)
  161.     find_package(Qt5WebEngine 5.8 REQUIRED)
  162.     find_package(Qt5WebEngineWidgets 5.8 REQUIRED)
  163.    
  164.     add_library(Core ${SOURCE_FILES} ../icons.qrc/ ${QM_FILES})
  165.    
  166.     foreach(_source IN ITEMS ${SOURCE_FILES})
  167.         get_filename_component(_source_path "${_source}" PATH)
  168.         file(RELATIVE_PATH _source_path_rel "${CMAKE_SOURCE_DIR}/Core" "${_source_path}")
  169.         string(REPLACE "/" "\\" _group_path "${_source_path_rel}")
  170.         source_group("${_group_path}" FILES "${_source}")
  171.     endforeach()
  172.    
  173.     set(SIELO_LIBS ${OPENSSL_LIBRARIES} Qt5::Widgets Qt5::WebEngine Qt5::Sql Qt5::WebEngineWidgets AppKit)
  174.     target_link_libraries(Core LINK_PUBLIC ${SIELO_LIBS})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement