Dateien, die als Parameter übergeben werden, werden nach dem Start direkt geladen
This commit is contained in:
159
barecode/CMakeLists.txt
Normal file
159
barecode/CMakeLists.txt
Normal file
@@ -0,0 +1,159 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(BareCode
|
||||
VERSION 1.2.0
|
||||
DESCRIPTION "A modular code editor built with Qt6"
|
||||
LANGUAGES CXX
|
||||
)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Plattform-Erkennung
|
||||
# ---------------------------------------------------------------------------
|
||||
if(WIN32)
|
||||
set(PLATFORM_WINDOWS TRUE)
|
||||
add_compile_definitions(PLATFORM_WINDOWS)
|
||||
set(CMAKE_WIN32_EXECUTABLE ON)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Haiku")
|
||||
set(PLATFORM_HAIKU TRUE)
|
||||
add_compile_definitions(PLATFORM_HAIKU)
|
||||
elseif(APPLE)
|
||||
set(PLATFORM_MACOS TRUE)
|
||||
add_compile_definitions(PLATFORM_MACOS)
|
||||
elseif(UNIX)
|
||||
set(PLATFORM_LINUX TRUE)
|
||||
add_compile_definitions(PLATFORM_LINUX)
|
||||
endif()
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Qt6
|
||||
# ---------------------------------------------------------------------------
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Concurrent)
|
||||
qt_standard_project_setup()
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
add_subdirectory(src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Übersetzungen — lrelease → .qm → ins Build-Verzeichnis
|
||||
# ---------------------------------------------------------------------------
|
||||
find_program(LRELEASE_EXECUTABLE
|
||||
NAMES lrelease lrelease-qt6
|
||||
HINTS "${Qt6_DIR}/../../../bin"
|
||||
REQUIRED
|
||||
)
|
||||
|
||||
set(TS_FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/translations/barecode_de.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/translations/barecode_en.ts
|
||||
)
|
||||
|
||||
set(QM_FILES)
|
||||
foreach(TS_FILE ${TS_FILES})
|
||||
get_filename_component(TS_NAME ${TS_FILE} NAME_WE)
|
||||
set(QM_FILE "${CMAKE_CURRENT_BINARY_DIR}/translations/${TS_NAME}.qm")
|
||||
add_custom_command(
|
||||
OUTPUT "${QM_FILE}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/translations"
|
||||
COMMAND ${LRELEASE_EXECUTABLE} "${TS_FILE}" -qm "${QM_FILE}"
|
||||
DEPENDS "${TS_FILE}"
|
||||
COMMENT "lrelease: ${TS_NAME}.qm"
|
||||
VERBATIM
|
||||
)
|
||||
list(APPEND QM_FILES "${QM_FILE}")
|
||||
endforeach()
|
||||
|
||||
add_custom_target(BareCode_translations ALL DEPENDS ${QM_FILES})
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Resources
|
||||
# ---------------------------------------------------------------------------
|
||||
qt_add_resources(BARECODE_RESOURCES resources/resources.qrc)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Executable
|
||||
# ---------------------------------------------------------------------------
|
||||
if(PLATFORM_WINDOWS)
|
||||
qt_add_executable(BareCode main.cpp BareCode.rc ${BARECODE_RESOURCES})
|
||||
else()
|
||||
qt_add_executable(BareCode main.cpp ${BARECODE_RESOURCES})
|
||||
endif()
|
||||
|
||||
add_dependencies(BareCode BareCode_translations)
|
||||
|
||||
target_link_libraries(BareCode PRIVATE
|
||||
BareCode_Core
|
||||
BareCode_Editor
|
||||
BareCode_FileTree
|
||||
BareCode_Highlighter
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
Qt6::Widgets
|
||||
)
|
||||
|
||||
target_include_directories(BareCode PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Installation
|
||||
# ---------------------------------------------------------------------------
|
||||
include(GNUInstallDirs)
|
||||
|
||||
install(TARGETS BareCode
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
|
||||
install(FILES LICENSE
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/licenses/barecode
|
||||
)
|
||||
|
||||
# .qm-Dateien installieren
|
||||
install(FILES ${QM_FILES}
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/BareCode/translations
|
||||
)
|
||||
|
||||
if(PLATFORM_LINUX)
|
||||
foreach(SIZE 16 32 48 64 128 256 512)
|
||||
install(FILES resources/icon_${SIZE}.png
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${SIZE}x${SIZE}/apps
|
||||
RENAME barecode.png
|
||||
)
|
||||
endforeach()
|
||||
install(FILES BareCode.desktop
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
|
||||
)
|
||||
endif()
|
||||
|
||||
if(PLATFORM_HAIKU)
|
||||
install(FILES resources/icon_256.png
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/BareCode
|
||||
RENAME BareCode.png
|
||||
)
|
||||
install(CODE "
|
||||
execute_process(
|
||||
COMMAND mimeset -f \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_BINDIR}/BareCode\"
|
||||
RESULT_VARIABLE _mimeset_result
|
||||
)
|
||||
if(NOT _mimeset_result EQUAL 0)
|
||||
message(WARNING \"mimeset konnte nicht ausgeführt werden.\")
|
||||
endif()
|
||||
")
|
||||
endif()
|
||||
|
||||
if(PLATFORM_MACOS)
|
||||
set_target_properties(BareCode PROPERTIES
|
||||
MACOSX_BUNDLE TRUE
|
||||
MACOSX_BUNDLE_BUNDLE_NAME "BareCode"
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}
|
||||
)
|
||||
endif()
|
||||
Reference in New Issue
Block a user