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