1- project (${PROJECT_NAME} VERSION ${MODULE_VERSION} )
1+ project (UniDeskCppExt )
22
3- set (CMAKE_CXX_STANDARD 17)
3+ set (CMAKE_CXX_STANDARD 17)
44
5- add_compile_options (/Zc:__cplusplus /permissive- /W4)
6- # message(STATUS "Creating target: ${TARGET}")
5+ # add_compile_options(/Zc:__cplusplus /permissive- /W4)
6+ # find Qt
7+ find_package (Qt6 COMPONENTS Core Widgets Quick QuickControls2 DBus Core5Compat Gui Qml REQUIRED)
78
8- set (QT Core Widgets Quick Qml QuickControls2 DBus Core5Compat)
9- find_package (Qt6 ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS ${QT} )
9+ # create the library
10+ add_library (unideskcppext STATIC singleton.h stdafx.h UDFrameless.h UDFrameless.cpp UDTools.h UDTools.cpp )
11+ target_link_libraries (unideskcppext PUBLIC Qt6::Core Qt6::Widgets Qt6::Quick Qt6::QuickControls2 Qt6::DBus Qt6::Core5Compat Qt6::Gui Qt6::Qml)
12+ target_include_directories (unideskcppext PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} )
1013
11- if (UNIX )
12- if (NOT APPLE )
13- target_link_libraries (${TARGET} PRIVATE Qt6::Gui Qt6::GuiPrivate)
14- if (KF6WindowSystem_FOUND)
15- target_link_libraries (${TARGET} PRIVATE KF6::WindowSystem)
16- endif ()
17- endif ()
18- endif ()
19-
20- # Clear the list of source files
21- set (sources_files "" )
22- set (qml_files "" )
23- set (resource_files "" )
24-
25- #遍历所有Cpp文件
26- file (GLOB CPP_FILES *.cpp)
27- foreach (filepath ${CPP_FILES} )
28- string (REPLACE "${CMAKE_CURRENT_SOURCE_DIR} /" "" filename ${filepath} )
29- list (APPEND sources_files ${filename} )
30- endforeach (filepath )
31-
32- #遍历所有h文件
33- file (GLOB H_FILES *.h)
34- foreach (filepath ${H_FILES} )
35- string (REPLACE "${CMAKE_CURRENT_SOURCE_DIR} /" "" filename ${filepath} )
36- list (APPEND sources_files ${filename} )
37- endforeach (filepath )
38-
39- # set(SINGLETON_FILES "Controls/LingmoRouter.qml" "Controls/LingmoUnits.qml")
40-
41- #遍历所有qml文件
42- file (GLOB_RECURSE QML_PATHS Controls/*.qml Controls/*.qml qmldir)
43- foreach (filepath ${QML_PATHS} )
44- string (REPLACE "${CMAKE_CURRENT_SOURCE_DIR} /" "" filename ${filepath} )
45- if (${filename} MATCHES "qmldir" )
46- list (APPEND resource_files ${filename} )
47- else ()
48- list (APPEND qml_files ${filename} )
49- # Check for singleton
50- foreach (singletion_name ${SINGLETON_FILES} )
51- if (${filename} MATCHES ${singletion_name} )
52- set_source_files_properties (${filename} PROPERTIES QT_QML_SINGLETON_TYPE true )
53- endif ()
54- endforeach (singletion_name)
55- endif ()
56- endforeach (filepath )
57-
58- #遍历所有资源文件
59- set (RES_SUFFIX "" )
60- set (RES_PATHS "" )
61- list (APPEND RES_SUFFIX *.png *.jpg *.svg *.ico *.ttf *.webp *.js *.qm *.qsb)
62- list (APPEND RES_PATHS Controls Font Image)
63- foreach (respath ${RES_PATHS} )
64- foreach (filesuffix ${RES_SUFFIX} )
65- file (GLOB_RECURSE RES_FOUND ${respath} /${filesuffix} )
66- foreach (filepath ${RES_FOUND} )
67- string (REPLACE "${CMAKE_CURRENT_SOURCE_DIR} /" "" filename ${filepath} )
68- list (APPEND resource_files ${filename} )
69- endforeach ()
70- endforeach ()
71- endforeach (respath)
72-
73-
74- # QHotkey
75- option (QHOTKEY_INSTALL OFF )
76- add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /QHotkey)
77- set (QHOTKEY_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /QHotkey/QHotkey)
78-
79- include (GenerateExportHeader)
80- include (GNUInstallDirs)
81- include (CMakePackageConfigHelpers)
82- include (ECMGenerateHeaders)
83-
84- # # Set Qt6 QMl Plugins
85- # qt_add_qml_module(${TARGET}
86- # PLUGIN_TARGET ${TARGET}
87- # OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/temp/${PROJECT_NAME}
88- # VERSION ${MODULE_VERSION_MAJOR}.${MODULE_VERSION_MINOR}
89- # URI ${PROJECT_NAME}
90- # TYPEINFO "plugins.qmltypes"
91- # SOURCES ${sources_files}
92- # QML_FILES ${qml_files}
93- # RESOURCES ${resource_files}
94- # RESOURCE_PREFIX "/lingmoui/kit"
95- # )
96- add_library (${TARGET} STATIC
97- ${sources_files}
98- ${qml_files}
99- ${resource_files}
100- )
101-
102- target_link_libraries (${TARGET}
103- PUBLIC
104- Qt6::Core
105- Qt6::Gui
106- Qt6::DBus
107- Qt6::Widgets
108- Qt6::Qml
109- Qt6::Quick
110- Qt6::QuickControls2
111- Qt6::GuiPrivate
112- Qt6::Core5Compat
113- QHotkey::QHotkey
114- )
115- target_include_directories (${TARGET} PRIVATE ${QHOTKEY_INCLUDE_DIR} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} )
116-
117- set_target_properties (${TARGET}
118- PROPERTIES VERSION ${MODULE_VERSION} SOVERSION ${MODULE_VERSION_MAJOR} )
119-
120- # add_subdirectory(GraphicalEffects)
121-
122- # install(DIRECTORY ${CMAKE_BINARY_DIR}/temp/${PROJECT_NAME} DESTINATION ${INSTALL_QMLDIR})
123- # generate_export_header(${TARGET} BASE_NAME ${TARGET})
124-
125- # install(TARGETS ${TARGET} EXPORT ${TARGET}Targets DESTINATION ${INSTALL_QMLDIR}/${PROJECT_NAME})
126-
127- # # Install Header
128- # install(FILES ${H_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TARGET})
0 commit comments