Files
BareCode/CMakeLists.txt

93 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.16)
project(BareCode
VERSION 1.0.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)
# Platform-specific settings
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
add_compile_definitions(PLATFORM_WINDOWS)
elseif(UNIX AND NOT APPLE)
add_compile_definitions(PLATFORM_LINUX)
elseif(APPLE)
add_compile_definitions(PLATFORM_MACOS)
endif()
# Find Qt6
find_package(Qt6 REQUIRED COMPONENTS
Core
Gui
Widgets
)
qt_standard_project_setup()
# Include cmake modules
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
# Collect sources
add_subdirectory(src)
# Resources
qt_add_resources(BARECODE_RESOURCES resources/resources.qrc)
# Main executable
if(WIN32)
qt_add_executable(BareCode
main.cpp
BareCode.rc
${BARECODE_RESOURCES}
)
else()
qt_add_executable(BareCode
main.cpp
${BARECODE_RESOURCES}
)
endif()
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
)
# Install rules
include(GNUInstallDirs)
install(TARGETS BareCode
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
if(UNIX AND NOT APPLE)
# Icons in den Standard-Hicolor-Theme-Pfad installieren
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()
# .desktop Datei
install(FILES BareCode.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
)
endif()