Skip to content

Commit 833ca9d

Browse files
author
Ahmad Samir
committed
Make the library co-installable when built with Qt5 and 6
1 parent 3aa37ce commit 833ca9d

File tree

9 files changed

+49
-38
lines changed

9 files changed

+49
-38
lines changed

CMakeLists.txt

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ option(BUILD_EXAMPLE "Build Example Application" ON)
1515

1616
option(BUILD_WITH_QT6 "Build with Qt6" OFF)
1717
if(BUILD_WITH_QT6)
18-
set(QT_MAJOR_VERSION 6)
1918
set(CMAKE_CXX_STANDARD 17)
19+
set(QT_MAJOR_VERSION 6)
20+
set(kColorPicker_LIB_NAME "kColorPicker-Qt6")
2021
else()
2122
set(QT_MAJOR_VERSION 5)
23+
set(kColorPicker_LIB_NAME "kColorPicker-Qt5")
2224
endif()
2325

2426
find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED Widgets)
@@ -42,26 +44,26 @@ endif (BUILD_TESTS)
4244

4345
include(CMakePackageConfigHelpers)
4446

45-
add_library(kColorPicker
47+
add_library(${kColorPicker_LIB_NAME}
4648
${KCOLORPICKER_SRCS}
4749
${CMAKE_CURRENT_SOURCE_DIR}/include/kColorPicker/KColorPicker.h
4850
${CMAKE_CURRENT_SOURCE_DIR}/icons/kColorPicker_icons.qrc
4951
)
5052

51-
add_library(kColorPicker::kColorPicker ALIAS kColorPicker)
53+
#add_library(kColorPicker::kColorPicker ALIAS kColorPicker)
5254

53-
target_include_directories(kColorPicker
55+
target_include_directories(${kColorPicker_LIB_NAME}
5456
PUBLIC
5557
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
5658
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
57-
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
59+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>/${kColorPicker_LIB_NAME}
5860
)
5961

60-
target_link_libraries(kColorPicker PUBLIC Qt${QT_MAJOR_VERSION}::Widgets)
62+
target_link_libraries(${kColorPicker_LIB_NAME} PUBLIC Qt${QT_MAJOR_VERSION}::Widgets)
6163

62-
target_compile_definitions(kColorPicker PRIVATE KIMAGEANNOTATOR_LIB)
64+
target_compile_definitions(${kColorPicker_LIB_NAME} PRIVATE KIMAGEANNOTATOR_LIB)
6365

64-
set_target_properties(kColorPicker
66+
set_target_properties(${kColorPicker_LIB_NAME}
6567
PROPERTIES
6668
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib
6769
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib
@@ -70,43 +72,43 @@ set_target_properties(kColorPicker
7072
SOVERSION 0
7173
)
7274

73-
install(TARGETS kColorPicker
74-
EXPORT kColorPicker-targets
75+
install(TARGETS ${kColorPicker_LIB_NAME}
76+
EXPORT ${kColorPicker_LIB_NAME}-targets
7577
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
7678
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
7779
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
7880
)
7981

8082
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/kColorPicker
81-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
83+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${kColorPicker_LIB_NAME}
8284
)
8385

84-
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/kColorPickerConfig.cmake.in
85-
${CMAKE_CURRENT_BINARY_DIR}/cmake/kColorPickerConfig.cmake
86-
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/kColorPicker
86+
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/${kColorPicker_LIB_NAME}Config.cmake.in
87+
${CMAKE_CURRENT_BINARY_DIR}/cmake/${kColorPicker_LIB_NAME}Config.cmake
88+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${kColorPicker_LIB_NAME}
8789
)
8890

89-
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/cmake/kColorPickerConfig-version.cmake
91+
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/cmake/${kColorPicker_LIB_NAME}Config-version.cmake
9092
VERSION ${PROJECT_VERSION}
9193
COMPATIBILITY AnyNewerVersion
9294
)
9395

9496
install(FILES
95-
${CMAKE_CURRENT_BINARY_DIR}/cmake/kColorPickerConfig.cmake
96-
${CMAKE_CURRENT_BINARY_DIR}/cmake/kColorPickerConfig-version.cmake
97-
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/kColorPicker
97+
${CMAKE_CURRENT_BINARY_DIR}/cmake/${kColorPicker_LIB_NAME}Config.cmake
98+
${CMAKE_CURRENT_BINARY_DIR}/cmake/${kColorPicker_LIB_NAME}Config-version.cmake
99+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${kColorPicker_LIB_NAME}
98100
)
99101

100102

101-
export(EXPORT kColorPicker-targets
102-
FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/kColorPicker-targets.cmake
103+
export(EXPORT ${kColorPicker_LIB_NAME}-targets
104+
FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/${kColorPicker_LIB_NAME}-targets.cmake
103105
NAMESPACE kColorPicker::
104106
)
105107

106-
install(EXPORT kColorPicker-targets
107-
FILE kColorPicker-targets.cmake
108+
install(EXPORT ${kColorPicker_LIB_NAME}-targets
109+
FILE ${kColorPicker_LIB_NAME}-targets.cmake
108110
NAMESPACE kColorPicker::
109-
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/kColorPicker
111+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${kColorPicker_LIB_NAME}
110112
)
111113

112114
# uninstall target

cmake/kColorPicker-Qt5Config.cmake.in

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
include(CMakeFindDependencyMacro)
2+
3+
@PACKAGE_INIT@
4+
5+
find_dependency(Qt5 @QT_MIN_VERSION@ COMPONENTS Widgets)
6+
7+
if(NOT TARGET kColorPicker::kColorPicker-Qt5)
8+
include("${CMAKE_CURRENT_LIST_DIR}/kColorPicker-Qt5-targets.cmake")
9+
endif()

cmake/kColorPicker-Qt6Config.cmake.in

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
include(CMakeFindDependencyMacro)
2+
3+
@PACKAGE_INIT@
4+
5+
find_dependency(Qt6 @QT_MIN_VERSION@ COMPONENTS Widgets)
6+
7+
if(NOT TARGET kColorPicker::kColorPicker-Qt6)
8+
include("${CMAKE_CURRENT_LIST_DIR}/kColorPicker-Qt6-targets.cmake")
9+
endif()

cmake/kColorPickerConfig.cmake.in

Lines changed: 0 additions & 9 deletions
This file was deleted.

example/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
add_executable(kColorPicker-example main.cpp)
22

3-
target_link_libraries(kColorPicker-example kColorPicker)
3+
target_link_libraries(kColorPicker-example ${kColorPicker_LIB_NAME})

example/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
#include <QApplication>
2121
#include <QVBoxLayout>
22-
#include <kColorPicker/KColorPicker.h>
22+
#include "kColorPicker/KColorPicker.h"
2323

2424
using kColorPicker::KColorPicker;
2525

@@ -37,4 +37,4 @@ int main(int argc, char **argv)
3737
widget->show();
3838

3939
return app.exec();
40-
}
40+
}

include/kColorPicker/KColorPicker.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#include <QColor>
2525
#include <QList>
2626

27-
#include <kColorPicker/KColorPickerExport.h>
27+
#include "kColorPicker/KColorPickerExport.h"
2828

2929
namespace kColorPicker {
3030

src/KColorPicker.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* Boston, MA 02110-1301, USA.
1818
*/
1919

20-
#include <kColorPicker/KColorPicker.h>
20+
#include "kColorPicker/KColorPicker.h"
2121

2222
#include "IconCreator.h"
2323
#include "PopupMenu.h"

tests/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ set(UNITTEST_SRC
44

55
add_library(KCOLORPICKER_STATIC STATIC ${KCOLORPICKER_SRCS})
66

7-
target_link_libraries(KCOLORPICKER_STATIC Qt${QT_MAJOR_VERSION}::Widgets kColorPicker)
7+
target_link_libraries(KCOLORPICKER_STATIC Qt${QT_MAJOR_VERSION}::Widgets ${kColorPicker_LIB_NAME})
88

99
foreach (UnitTest ${UNITTEST_SRC})
1010
get_filename_component(UnitTestName ${UnitTest} NAME_WE)

0 commit comments

Comments
 (0)