getting mac cmake to work

This commit is contained in:
dante ruiz 2019-09-03 14:50:45 -07:00
parent 3f865a430b
commit 37db15b5a3
11 changed files with 1874 additions and 30 deletions

View file

@ -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()

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View 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)

View 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)

View 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>

View file

@ -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();

View file

@ -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);