Files
BareCode/CMakeLists.txt
2026-05-23 13:14:30 +02:00

70 lines
1.3 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
qt_add_executable(BareCode
main.cpp
${BARECODE_RESOURCES}
)
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}
)