From 9beb6fcc19a27bd7a280420bdac8a95b650316ed Mon Sep 17 00:00:00 2001 From: Huang Rui Date: Tue, 21 Nov 2023 10:25:53 +0800 Subject: [PATCH] build: add build options for gentoo Signed-off-by: Huang Rui --- CMakeLists.txt | 2 ++ demo/CMakeLists.txt | 2 ++ qschematic/CMakeLists.txt | 10 ++++++---- qschematic/external.cmake | 2 ++ qschematic/qschematic-config.cmake.in | 3 +++ 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a265d7e523f..bfe5cfe8d8bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,8 @@ project( # User options option(QSCHEMATIC_BUILD_DEMO "Whether to build the demo project" ON) option(QSCHEMATIC_DEPENDENCY_GPDS_DOWNLOAD "Whether to pull the GPDS dependency via FetchContent" ON) +option(QSCHEMATIC_BUILD_QT6 "Whether to build with QT6" ON) +option(QSCHEMATIC_BUILD_STATIC "Whether to build static library" ON) # User settings set(QSCHEMATIC_DEPENDENCY_GPDS_TARGET "gpds::gpds-static" CACHE STRING "The CMake target of the GPDS library to use") diff --git a/demo/CMakeLists.txt b/demo/CMakeLists.txt index 6c315c2894b2..db206dd156ac 100644 --- a/demo/CMakeLists.txt +++ b/demo/CMakeLists.txt @@ -2,11 +2,13 @@ include(../qschematic/external.cmake) # Qt +if (QSCHEMATIC_BUILD_QT6) find_package( Qt6 COMPONENTS PrintSupport ) +endif() if (NOT Qt6_FOUND) find_package( Qt5 diff --git a/qschematic/CMakeLists.txt b/qschematic/CMakeLists.txt index ec56b33ad264..6b4d353127bc 100644 --- a/qschematic/CMakeLists.txt +++ b/qschematic/CMakeLists.txt @@ -150,7 +150,6 @@ setup_target_common(${TARGET_SHARED}) ################################################################################ # Static library # ################################################################################ - add_library(${TARGET_STATIC} STATIC) setup_target_common(${TARGET_STATIC}) @@ -160,7 +159,6 @@ target_compile_definitions( QSCHEMATIC_STATIC_DEFINE ) - ################################################################################ # Install # ################################################################################ @@ -171,10 +169,14 @@ include(CMakePackageConfigHelpers) set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/qschematic) # Targets +if (QSCHEMATIC_BUILD_STATIC) + set(INSTALL_TARGETS ${INSTALL_TARGETS} ${TARGET_STATIC} ${TARGET_SHARED}) +else() + set(INSTALL_TARGETS ${INSTALL_TARGETS} ${TARGET_SHARED}) +endif() install( TARGETS - ${TARGET_STATIC} - ${TARGET_SHARED} + ${INSTALL_TARGETS} EXPORT qschematic-targets FILE_SET HEADERS diff --git a/qschematic/external.cmake b/qschematic/external.cmake index 80aae6c29b94..7e57f0852ac5 100644 --- a/qschematic/external.cmake +++ b/qschematic/external.cmake @@ -35,6 +35,7 @@ endif() ######################################################################################################################## # Try to find Qt6 +if (QSCHEMATIC_BUILD_QT6) find_package( Qt6 COMPONENTS @@ -42,6 +43,7 @@ find_package( Gui Widgets ) +endif() # If Qt6 was not found, fallback to Qt5 # Require minimum Qt 5.15 for versionless cmake targets. This can be relaxed down to Qt 5.6 (?) if needed by modifying diff --git a/qschematic/qschematic-config.cmake.in b/qschematic/qschematic-config.cmake.in index 7452408bcd09..5b2a14a4c9c2 100644 --- a/qschematic/qschematic-config.cmake.in +++ b/qschematic/qschematic-config.cmake.in @@ -6,8 +6,10 @@ include(CMakeFindDependencyMacro) set(QSCHEMATIC_DEPENDENCY_GPDS_DOWNLOAD @QSCHEMATIC_DEPENDENCY_GPDS_DOWNLOAD@) set(QSCHEMATIC_DEPENDENCY_GPDS_MINIMUM_VERSION @QSCHEMATIC_DEPENDENCY_GPDS_MINIMUM_VERSION@) +set(QSCHEMATIC_BUILD_QT6 @QSCHEMATIC_BUILD_QT6@) # Qt +if (QSCHEMATIC_BUILD_QT6) find_dependency( Qt6 COMPONENTS @@ -15,6 +17,7 @@ find_dependency( Gui Widgets ) +endif() if (NOT Qt6_FOUND) find_dependency( Qt5 5.15 -- 2.42.1