1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-14 10:12:59 +02:00
vcmi/launcher/CMakeLists.txt

199 lines
5.7 KiB
CMake
Raw Normal View History

2024-04-01 02:31:33 +02:00
if(ENABLE_INNOEXTRACT)
add_subdirectory("lib/innoextract")
2024-04-16 22:23:41 +02:00
add_definitions(-DENABLE_INNOEXTRACT)
2024-04-01 02:31:33 +02:00
endif()
set(launcher_SRCS
StdInc.cpp
2023-06-30 14:24:43 +02:00
aboutProject/aboutproject_moc.cpp
modManager/cdownloadmanager_moc.cpp
modManager/cmodlist.cpp
modManager/cmodlistmodel_moc.cpp
modManager/cmodlistview_moc.cpp
modManager/cmodmanager.cpp
modManager/imageviewer_moc.cpp
settingsView/csettingsview_moc.cpp
firstLaunch/firstlaunch_moc.cpp
main.cpp
2024-04-21 16:56:39 +02:00
helper.cpp
mainwindow_moc.cpp
languages.cpp
launcherdirs.cpp
jsonutils.cpp
updatedialog_moc.cpp
)
set(launcher_HEADERS
StdInc.h
2023-06-30 14:24:43 +02:00
aboutProject/aboutproject_moc.h
modManager/cdownloadmanager_moc.h
modManager/cmodlist.h
modManager/cmodlistmodel_moc.h
modManager/cmodlistview_moc.h
modManager/cmodmanager.h
modManager/imageviewer_moc.h
settingsView/csettingsview_moc.h
firstLaunch/firstlaunch_moc.h
mainwindow_moc.h
languages.h
launcherdirs.h
jsonutils.h
updatedialog_moc.h
main.h
2024-04-21 16:56:39 +02:00
helper.cpp
)
set(launcher_FORMS
2023-06-30 14:24:43 +02:00
aboutProject/aboutproject_moc.ui
modManager/cmodlistview_moc.ui
modManager/imageviewer_moc.ui
settingsView/csettingsview_moc.ui
firstLaunch/firstlaunch_moc.ui
mainwindow_moc.ui
updatedialog_moc.ui
)
set(launcher_TS
2023-04-29 13:50:05 +02:00
translation/chinese.ts
2023-12-27 18:20:13 +02:00
translation/czech.ts
translation/english.ts
2023-06-29 22:15:41 +02:00
translation/french.ts
translation/german.ts
translation/polish.ts
2024-04-07 19:17:14 +02:00
translation/portuguese.ts
translation/russian.ts
2023-03-16 18:36:51 +02:00
translation/spanish.ts
translation/ukrainian.ts
2023-09-24 16:09:09 +02:00
translation/vietnamese.ts
2023-03-16 18:36:51 +02:00
)
if(APPLE_IOS)
list(APPEND launcher_SRCS
ios/main.m
)
endif()
assign_source_group(${launcher_SRCS} ${launcher_HEADERS} VCMI_launcher.rc)
# Tell CMake to run moc when necessary:
set(CMAKE_AUTOMOC ON)
if(POLICY CMP0071)
cmake_policy(SET CMP0071 NEW)
endif()
# As moc files are generated in the binary dir, tell CMake
# to always look for includes there:
set(CMAKE_INCLUDE_CURRENT_DIR ON)
if(TARGET Qt6::Core)
qt_wrap_ui(launcher_UI_HEADERS ${launcher_FORMS})
else()
qt5_wrap_ui(launcher_UI_HEADERS ${launcher_FORMS})
2022-12-27 12:28:40 +02:00
if(ENABLE_TRANSLATIONS)
2023-01-16 18:02:11 +02:00
set_source_files_properties(${launcher_TS} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/translation)
qt5_add_translation( launcher_QM ${launcher_TS} )
endif()
endif()
if(WIN32)
set(launcher_ICON VCMI_launcher.rc)
endif()
if(ENABLE_SINGLE_APP_BUILD)
2023-01-15 23:53:27 +02:00
add_library(vcmilauncher STATIC ${launcher_QM} ${launcher_SRCS} ${launcher_HEADERS} ${launcher_UI_HEADERS})
else()
add_executable(vcmilauncher WIN32 ${launcher_QM} ${launcher_SRCS} ${launcher_HEADERS} ${launcher_UI_HEADERS} ${launcher_ICON})
endif()
if(TARGET Qt6::Core)
if(ENABLE_TRANSLATIONS)
set_source_files_properties(${launcher_TS} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/translation)
qt_add_translations(vcmilauncher
TS_FILES ${launcher_TS}
QM_FILES_OUTPUT_VARIABLE launcher_QM
INCLUDE_DIRECTORIES
${CMAKE_CURRENT_BINARY_DIR})
endif()
endif()
if(WIN32)
set_target_properties(vcmilauncher
PROPERTIES
OUTPUT_NAME "VCMI_launcher"
PROJECT_LABEL "VCMI_launcher"
)
# FIXME: Can't to get CMP0020 working with Vcpkg and CMake 3.8.2
# So far I tried:
# - cmake_minimum_required set to 2.8.11 globally and in this file
# - cmake_policy in all possible places
# - used NO_POLICY_SCOPE to make sure no other parts reset policies
# Still nothing worked, warning kept appearing and WinMain didn't link automatically
target_link_libraries(vcmilauncher Qt${QT_VERSION_MAJOR}::WinMain)
2014-10-12 16:40:49 +03:00
endif()
if(APPLE)
# This makes Xcode project prettier by moving vcmilauncher_autogen directory into vcmiclient subfolder
set_property(GLOBAL PROPERTY AUTOGEN_TARGETS_FOLDER vcmilauncher)
endif()
if (NOT APPLE_IOS AND NOT ANDROID)
target_link_libraries(vcmilauncher SDL2::SDL2)
endif()
target_link_libraries(vcmilauncher vcmi Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network)
target_include_directories(vcmilauncher
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
)
vcmi_set_output_dir(vcmilauncher "")
enable_pch(vcmilauncher)
2024-04-01 02:31:33 +02:00
if(ENABLE_INNOEXTRACT)
target_link_libraries(vcmilauncher innoextract)
endif()
if(APPLE_IOS)
set(RESOURCES_DESTINATION ${DATA_DIR})
2022-10-13 12:04:32 +02:00
2023-01-14 19:29:42 +02:00
# TODO: remove after fixing Conan's Qt recipe
if(XCODE_VERSION VERSION_GREATER_EQUAL 14.0)
target_link_libraries(vcmilauncher "-framework IOKit")
endif()
2022-10-13 12:04:32 +02:00
# workaround https://github.com/conan-io/conan-center-index/issues/13332
if(USING_CONAN)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/QIOSIntegrationPlugin.h
"#include <QtPlugin>\nQ_IMPORT_PLUGIN(QIOSIntegrationPlugin)"
)
# target_include_directories(vcmilauncher PRIVATE ${CMAKE_BINARY_DIR})
target_link_libraries(vcmilauncher
Qt${QT_VERSION_MAJOR}::QIOSIntegrationPlugin
qt::QIOSIntegrationPlugin
)
endif()
else()
set(RESOURCES_DESTINATION ${DATA_DIR}/launcher)
2023-11-06 14:29:36 +02:00
# Link to build directory for easier debugging
add_custom_command(TARGET vcmilauncher POST_BUILD
2023-01-16 18:02:11 +02:00
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/launcher
2023-11-06 14:29:36 +02:00
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake_modules/create_link.cmake ${CMAKE_SOURCE_DIR}/launcher/icons ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/launcher/icons
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake_modules/create_link.cmake ${CMAKE_CURRENT_BINARY_DIR}/translation ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/launcher/translation
)
install(TARGETS vcmilauncher DESTINATION ${BIN_DIR})
# Install icons and desktop file on Linux
if(NOT WIN32 AND NOT APPLE)
install(FILES "vcmilauncher.desktop" DESTINATION share/applications)
install(FILES "eu.vcmi.VCMI.metainfo.xml" DESTINATION share/metainfo)
endif()
endif()
install(DIRECTORY icons DESTINATION ${RESOURCES_DESTINATION})
2022-12-27 12:28:40 +02:00
if(ENABLE_TRANSLATIONS)
2023-01-16 18:02:11 +02:00
install(FILES ${launcher_QM} DESTINATION ${RESOURCES_DESTINATION}/translation)
endif()