mirror of
https://thingvellir.net/git/overte
synced 2025-03-27 23:52:03 +01:00
getting mac cmake to work
This commit is contained in:
parent
3f865a430b
commit
37db15b5a3
11 changed files with 1874 additions and 30 deletions
|
@ -1,18 +1,39 @@
|
|||
cmake_minimum_required(VERSION 3.11)
|
||||
|
||||
project(HQLauncher)
|
||||
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED_ON)
|
||||
if (APPLE)
|
||||
set(ENV{MACOSX_DEPLOYMENT_TARGET} 10.9)
|
||||
endif()
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules")
|
||||
include("cmake/macros/SetPackagingParameters.cmake")
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
#set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
#add_compile_options(-W -Wall -Wextra -Wpedantic -Werror -std=c++1z)
|
||||
|
||||
include("cmake/init.cmake")
|
||||
include("cmake/macros/SetPackagingParameters.cmake")
|
||||
|
||||
|
||||
function(set_from_env _RESULT_NAME _ENV_VAR_NAME _DEFAULT_VALUE)
|
||||
if (NOT DEFINED ${_RESULT_NAME})
|
||||
if ("$ENV{${_ENV_VAR_NAME}}" STREQUAL "")
|
||||
set (${_RESULT_NAME} ${_DEFAULT_VALUE} PARENT_SCOPE)
|
||||
else()
|
||||
set (${_RESULT_NAME} $ENV{${_ENV_VAR_NAME}} PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
if (APPLE)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-framework Cocoa -framework CoreServices -framework Carbon -framework IOKit -framework Security -framework SystemConfiguration")
|
||||
endif()
|
||||
if (WIN32)
|
||||
|
||||
ExternalProject_Add(
|
||||
|
@ -42,8 +63,43 @@ if (WIN32)
|
|||
|
||||
endif ()
|
||||
|
||||
|
||||
if (APPLE)
|
||||
ExternalProject_Add(
|
||||
qtlite
|
||||
URL "https://dantescalves.com/launcher//qt-lite-ssl-mac.zip"
|
||||
URL_HASH MD5=2b073937a7c5dbae6e6ed244d2063398
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
LOG_DOWNLOAD 1
|
||||
)
|
||||
|
||||
|
||||
ExternalProject_Get_Property(qtlite SOURCE_DIR)
|
||||
ExternalProject_Get_Property(qtlite STAMP_DIR)
|
||||
|
||||
include("${STAMP_DIR}/download-qtlite.cmake")
|
||||
include("${STAMP_DIR}/extract-qtlite.cmake")
|
||||
include("${STAMP_DIR}/verify-qtlite.cmake")
|
||||
|
||||
message("${SOURCE_DIR}/lib/cmake")
|
||||
|
||||
list(APPEND CMAKE_PREFIX_PATH ${SOURCE_DIR}/lib/cmake)
|
||||
|
||||
set(SSL_DIR ${SOURCE_DIR}/ssl)
|
||||
set(OPENSSL_ROOT_DIR ${SSL_DIR})
|
||||
message("SSL dir is ${SSL_DIR}")
|
||||
endif()
|
||||
|
||||
if (APPLE)
|
||||
set(OPENSSL_USE_STATIC_LIBS TRUE)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
endif()
|
||||
|
||||
find_package(Qt5 COMPONENTS Core Gui Qml Quick QuickControls2 Network REQUIRED)
|
||||
find_package(OpenGL)
|
||||
find_package(OpenGL REQUIRED)
|
||||
find_package(QtStaticDeps REQUIRED)
|
||||
|
||||
set(CUSTOM_LAUNCHER_QRC_PATHS "")
|
||||
set(RESOURCES_QRC ${CMAKE_CURRENT_BINARY_DIR}/resources.qrc)
|
||||
|
@ -61,7 +117,6 @@ add_custom_target(resources ALL DEPENDS ${GENERATE_QRC_DEPENDS})
|
|||
|
||||
foreach(plugin ${Qt5Gui_PLUGINS})
|
||||
get_target_property(_loc ${plugin} LOCATION)
|
||||
message("Plugin ${plugin} is at location ${_loc}")
|
||||
set(plugin_libs ${plugin_libs} ${_loc})
|
||||
endforeach()
|
||||
|
||||
|
@ -75,9 +130,18 @@ set(src_files
|
|||
src/LauncherWindow.cpp)
|
||||
|
||||
set(TARGET_NAME ${PROJECT_NAME})
|
||||
add_executable(${PROJECT_NAME} ${src_files})
|
||||
|
||||
#target_openssl()
|
||||
|
||||
set_packaging_parameters()
|
||||
if (WIN32)
|
||||
add_executable(${PROJECT_NAME} ${src_files})
|
||||
elseif (APPLE)
|
||||
set_target_properties(${this_target} PROPERTIES
|
||||
MACOSX_BUNDLE_INFO_PLIST MacOSXBundleInfo.plist.in)
|
||||
|
||||
set(MACOSX_BUNDLE_ICON_FILE "interface.icns")
|
||||
add_executable(${PROJECT_NAME} MACOSX_BUNDLE ${src_files})
|
||||
endif()
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
Qt5::Core
|
||||
|
@ -89,31 +153,38 @@ target_link_libraries(${PROJECT_NAME}
|
|||
${Qt_LIBRARIES}
|
||||
${OPENGL_LIBRARIES}
|
||||
${plugin_libs}
|
||||
wsock32 ws2_32 Winmm version imm32 dwmapi
|
||||
Crypt32 Iphlpapi
|
||||
"${SSL_DIR}/lib/libeay32.lib"
|
||||
"${SSL_DIR}/lib/ssleay32.lib"
|
||||
"${_qt5Core_install_prefix}/lib/qtpcre2.lib"
|
||||
"${_qt5Core_install_prefix}/lib/qtlibpng.lib"
|
||||
"${_qt5Core_install_prefix}/lib/qtfreetype.lib"
|
||||
"${_qt5Core_install_prefix}/lib/Qt5AccessibilitySupport.lib"
|
||||
"${_qt5Core_install_prefix}/lib/Qt5FbSupport.lib"
|
||||
"${_qt5Core_install_prefix}/lib/Qt5OpenGLExtensions.lib"
|
||||
"${_qt5Core_install_prefix}/lib/Qt5QuickTemplates2.lib"
|
||||
"${_qt5Core_install_prefix}/lib/Qt5FontDatabaseSupport.lib"
|
||||
"${_qt5Core_install_prefix}/lib/Qt5ThemeSupport.lib"
|
||||
# "${_qt5Core_install_prefix}/lib/Qt5Bootstrap.lib"
|
||||
"${_qt5Core_install_prefix}/lib/Qt5EventDispatcherSupport.lib"
|
||||
"${_qt5Core_install_prefix}/qml/QtQuick.2/qtquick2plugin.lib"
|
||||
"${_qt5Core_install_prefix}/qml/QtQuick/Controls.2/qtquickcontrols2plugin.lib"
|
||||
"${_qt5Core_install_prefix}/qml/QtQuick/Templates.2/qtquicktemplates2plugin.lib")
|
||||
${QT_STATIC_LIBS}
|
||||
)
|
||||
|
||||
if (WIN32)
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
wsock32 ws2_32 Winmm version imm32 dwmapi
|
||||
Crypt32 Iphlpapi
|
||||
"${SSL_DIR}/lib/libeay32.lib"
|
||||
"${SSL_DIR}/lib/ssleay32.lib"
|
||||
"${_qt5Core_install_prefix}/qml/QtQuick.2/qtquick2plugin.lib"
|
||||
"${_qt5Core_install_prefix}/qml/QtQuick/Controls.2/qtquickcontrols2plugin.lib"
|
||||
"${_qt5Core_install_prefix}/qml/QtQuick/Templates.2/qtquicktemplates2plugin.lib")
|
||||
elseif (APPLE)
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
${OPENSSL_LIBRARIES}
|
||||
"${_qt5Core_install_prefix}/qml/QtQuick.2/libqtquick2plugin.a"
|
||||
"${_qt5Core_install_prefix}/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.a"
|
||||
"${_qt5Core_install_prefix}/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.a"
|
||||
"${_qt5Core_install_prefix}/plugins/platforms/libqcocoa.a")
|
||||
endif()
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||
${Qt5Core_INCLUDE_DIRS}
|
||||
${Qt5Quick_INCLUDE_DIRS}
|
||||
${Qt5Gui_INCLUDE_DIRS}
|
||||
${Qt5Qml_INCLUDE_DIRS})
|
||||
${Qt5Qml_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
if (APPLE)
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||
${OPENSSL_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
set(INTERFACE_EXEC_DIR "$<TARGET_FILE_DIR:${PROJECT_NAME}>")
|
||||
set(RESOURCES_DEV_DIR "${INTERFACE_EXEC_DIR}/resources")
|
||||
|
@ -121,3 +192,29 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
|||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different
|
||||
"${RESOURCES_RCC}"
|
||||
"${INTERFACE_EXEC_DIR}")
|
||||
|
||||
|
||||
|
||||
if (APPLE)
|
||||
install(
|
||||
TARGETS HQLauncher
|
||||
BUNDLE DESTINATION "."
|
||||
COMPONENT applications)
|
||||
|
||||
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR})
|
||||
|
||||
include(CPackComponent)
|
||||
|
||||
set(CPACK_PACKAGE_NAME "HQ Launcher")
|
||||
set(CPACK_PACKAGE_VENDOR "High Fidelity")
|
||||
set(CPACK_PACKAGE_FILE_NAME "HQ Launcher")
|
||||
|
||||
set(CPACK_NSIS_DISPLAY_NAME ${_DISPLAY_NAME})
|
||||
|
||||
set(DMG_SUBFOLDER_NAME "High Fidelity")
|
||||
set(ESCAPED_DMG_SUBFOLDER_NAME "")
|
||||
set(DMG_SUBFOLDER_ICON "${CMAKE_SOURCE_DIR}/cmake/installer/install-folder.rsrc")
|
||||
|
||||
set(CPACK_GENERATOR "DragNDrop")
|
||||
include(CPack)
|
||||
endif()
|
||||
|
|
BIN
launchers/qt/cmake/installer/Thumbs.db
Normal file
BIN
launchers/qt/cmake/installer/Thumbs.db
Normal file
Binary file not shown.
1634
launchers/qt/cmake/installer/install-folder.rsrc
Normal file
1634
launchers/qt/cmake/installer/install-folder.rsrc
Normal file
File diff suppressed because it is too large
Load diff
BIN
launchers/qt/cmake/installer/installer-header.bmp
Normal file
BIN
launchers/qt/cmake/installer/installer-header.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
BIN
launchers/qt/cmake/installer/installer.ico
Normal file
BIN
launchers/qt/cmake/installer/installer.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 299 KiB |
BIN
launchers/qt/cmake/installer/uninstaller-header.bmp
Normal file
BIN
launchers/qt/cmake/installer/uninstaller-header.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
45
launchers/qt/cmake/macros/SetPackagingParameters.cmake
Normal file
45
launchers/qt/cmake/macros/SetPackagingParameters.cmake
Normal file
|
@ -0,0 +1,45 @@
|
|||
#
|
||||
# SetPackagingParameters.cmake
|
||||
# cmake/macros
|
||||
#
|
||||
# Created by Leonardo Murillo on 07/14/2015.
|
||||
# Copyright 2015 High Fidelity, Inc.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
||||
# This macro checks some Jenkins defined environment variables to determine the origin of this build
|
||||
# and decides how targets should be packaged.
|
||||
|
||||
macro(SET_PACKAGING_PARAMETERS)
|
||||
set(PR_BUILD 0)
|
||||
set(PRODUCTION_BUILD 0)
|
||||
set(DEV_BUILD 0)
|
||||
set(BUILD_NUMBER 0)
|
||||
|
||||
set_from_env(RELEASE_TYPE RELEASE_TYPE "DEV")
|
||||
set_from_env(RELEASE_NUMBER RELEASE_NUMBER "")
|
||||
set_from_env(STABLE_BUILD STABLE_BUILD 0)
|
||||
|
||||
message(STATUS "The RELEASE_TYPE variable is: ${RELEASE_TYPE}")
|
||||
set(BUILD_NUMBER ${RELEASE_NUMBER})
|
||||
|
||||
if (RELEASE_TYPE STREQUAL "PRODUCTION")
|
||||
set(PRODUCTION_BUILD 1)
|
||||
set(BUILD_VERSION ${RELEASE_NUMBER})
|
||||
|
||||
# add definition for this release type
|
||||
add_definitions(-DPRODUCTION_BUILD)
|
||||
|
||||
elseif (RELEASE_TYPE STREQUAL "PR")
|
||||
set(PR_BUILD 1)
|
||||
set(BUILD_VERSION "PR${RELEASE_NUMBER}")
|
||||
|
||||
# add definition for this release type
|
||||
add_definitions(-DPR_BUILD)
|
||||
else ()
|
||||
set(DEV_BUILD 1)
|
||||
set(BUILD_VERSION "dev")
|
||||
endif ()
|
||||
|
||||
endmacro(SET_PACKAGING_PARAMETERS)
|
31
launchers/qt/cmake/modules/FindQtStaticDeps.cmake
Normal file
31
launchers/qt/cmake/modules/FindQtStaticDeps.cmake
Normal file
|
@ -0,0 +1,31 @@
|
|||
|
||||
set(qt_static_lib_dependices
|
||||
"qtpcre2"
|
||||
"qtlibpng"
|
||||
"qtfreetype"
|
||||
"Qt5AccessibilitySupport"
|
||||
"Qt5FbSupport"
|
||||
"Qt5GraphicsSupport"
|
||||
"Qt5CglSupport"
|
||||
"Qt5ClipboardSupport"
|
||||
"Qt5OpenGLExtensions"
|
||||
"Qt5QuickTemplates2"
|
||||
"Qt5FontDatabaseSupport"
|
||||
"Qt5ThemeSupport"
|
||||
"Qt5EventDispatcherSupport")
|
||||
|
||||
if (WIN32)
|
||||
elseif(APPLE)
|
||||
endif()
|
||||
|
||||
set(LIBS_PREFIX "${_qt5Core_install_prefix}/lib/")
|
||||
foreach (_qt_static_dep ${qt_static_lib_dependices})
|
||||
if (WIN32)
|
||||
set(lib_path "${LIBS_PREFIX}${_qt_static_dep}.lib")
|
||||
else()
|
||||
set(lib_path "${LIBS_PREFIX}lib${_qt_static_dep}.a")
|
||||
endif()
|
||||
set(QT_STATIC_LIBS ${QT_STATIC_LIBS} ${lib_path})
|
||||
endforeach()
|
||||
|
||||
unset(qt_static_lib_dependices)
|
37
launchers/qt/cmake/modules/MacOSXBundleInfo.plist.in
Normal file
37
launchers/qt/cmake/modules/MacOSXBundleInfo.plist.in
Normal file
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${APP_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>${MACOSX_BUNDLE_ICON_FILE}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.highfidelity.launcher</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>Window</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -30,7 +30,7 @@ public:
|
|||
ERROR_SCREEN,
|
||||
UI_STATE_NUM
|
||||
};
|
||||
Q_ENUMS(UIState);
|
||||
Q_ENUMS(UIState)
|
||||
|
||||
enum LastLoginError {
|
||||
NONE = 0,
|
||||
|
@ -38,7 +38,7 @@ public:
|
|||
CREDENTIALS,
|
||||
LAST_ERROR_NUM
|
||||
};
|
||||
Q_ENUMS(LastLoginError);
|
||||
Q_ENUMS(LastLoginError)
|
||||
Q_INVOKABLE QString getCurrentUISource() const;
|
||||
|
||||
static void declareQML();
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "LauncherWindow.h"
|
||||
#include "Launcher.h"
|
||||
|
||||
//Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin);
|
||||
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);
|
||||
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin);
|
||||
//Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);
|
||||
Q_IMPORT_PLUGIN(QtQuick2Plugin);
|
||||
Q_IMPORT_PLUGIN(QtQuickControls2Plugin);
|
||||
Q_IMPORT_PLUGIN(QtQuickTemplates2Plugin);
|
||||
|
|
Loading…
Reference in a new issue