diff options
author | Ivan Komissarov <ABBAPOH@gmail.com> | 2020-08-13 00:45:36 +0200 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2020-08-17 17:09:39 +0000 |
commit | b67b08f1c2c26a226db6f43f2452026f85ad6460 (patch) | |
tree | e8aa41c51e6247919d531d9cd35737c98a360ff9 /CMakeLists.txt | |
parent | 2311a8224c3fc7141c44cc517f4ecdb882cd09f8 (diff) |
Initial CMake port
This change allows to build Qbs using CMake build tool
Tested platforms
- Linux (gcc)
- macOS (clang)
- Windows (msvc2017)
Missing features (compared to Qbs build)
- Documentation build
- Bundled QtScript support
- Static build
- .pc file for qbscore
- qbs module for qbscore
Change-Id: I09b5dadd6723d5a47e5ef2a9a38d3300488718f2
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..2d3376b15 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.10) + +## Add paths to check for cmake modules: +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + +include(FeatureSummary) +include(QbsAPI) + +file(STRINGS VERSION QBS_VERSION) +project(Qbs VERSION ${QBS_VERSION}) + +# Force C++ standard, do not fall back, do not use compiler extensions +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +# Set up Qt stuff: +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +option(WITH_TESTS "Build Tests" ON) +option(WITH_UNIT_TESTS "Build Unit Tests" OFF) +option(WITH_PROJECT_FILE_UPDATES "Enable project file updates support" OFF) +option(INSTALL_PUBLIC_HEADERS "Whether to install public headers" ON) + +find_program(CCACHE_FOUND ccache) +if(CCACHE_FOUND) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) # Less useful to do it for linking, see edit2 +endif(CCACHE_FOUND) + +if(WITH_TESTS) + enable_testing() + set(QT_TEST_COMPONENT Test) + set(IMPLICIT_DEPENDS Qt5::Test) +endif() + +find_package(Qt5 + COMPONENTS Concurrent Core Gui Network Script Widgets Xml ${QT_TEST_COMPONENT} + REQUIRED + ) + +add_subdirectory(src) +add_subdirectory(share) +if(WITH_TESTS) + add_subdirectory(tests) +endif() |