-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
77 lines (65 loc) · 2.57 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
cmake_minimum_required(VERSION 3.1)
project(TftpClient LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Core Quick REQUIRED)
file (GLOB SRC src/*.cpp)
if (WIN32)
add_executable(${PROJECT_NAME} WIN32 "${SRC}" "qml.qrc" "${CMAKE_SOURCE_DIR}/img/app.rc")
else()
add_executable(${PROJECT_NAME} "${SRC}" "qml.qrc")
endif()
target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick)
# ---------------------------------------------------------------
# Installation
#
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VERSION "0.3")
set(CPACK_PACKAGE_VENDOR "TODO")
set(CPACK_PACKAGE_CONTACT "TODO")
set(CPACK_PACKAGE_DESCRIPTION "TFTP Client")
set(CPACK_STRIP_FILES ON)
if (WIN32)
find_program(WINDEPLOYQT windeployqt PATHS ${QT5_ROOT_PATH}/bin/)
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION .)
if (PACKMSI)
set(CPACK_GENERATOR NSIS)
else ()
set(CPACK_GENERATOR ZIP)
endif ()
set(CPACK_PACKAGE_EXECUTABLES "${PROJECT_NAME}" "${PROJECT_NAME}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME})
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
set(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/img/logo.ico)
set(CPACK_NSIS_MUI_FINISHPAGE_RUN "${PROJECT_NAME}.exe")
set(CPACK_NSIS_URL_INFO_ABOUT "TODO")
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE)
set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
add_custom_target(windeployqt ALL
${WINDEPLOYQT}
--dir ${PROJECT_BINARY_DIR}/deploy
--release
--compiler-runtime
--qmldir ${PROJECT_SOURCE_DIR}/qml
$<TARGET_FILE:${PROJECT_NAME}>
DEPENDS ${PROJECT_NAME}
COMMENT "Preparing Qt runtime dependencies")
install(DIRECTORY ${PROJECT_BINARY_DIR}/deploy/ DESTINATION .)
IF(CMAKE_CL_64)
SET(CMAKE_MSVC_ARCH x64)
ELSE(CMAKE_CL_64)
SET(CMAKE_MSVC_ARCH x86)
ENDIF(CMAKE_CL_64)
FIND_PROGRAM(MSVC_REDIST
NAMES vcredist_${CMAKE_MSVC_ARCH}.exe
PATHS ${PROJECT_BINARY_DIR}/deploy/)
GET_FILENAME_COMPONENT(vcredist_name "${MSVC_REDIST}" NAME)
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "ExecWait '\\\"$INSTDIR\\\\vcredist_${CMAKE_MSVC_ARCH}.exe\\\" /install /quiet /norestart'")
else ()
message (CRITICAL "Unsupported OS")
endif ()
include(CPack)