Add CMake project files for the examples

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
This commit is contained in:
Yuhang Zhao 2021-03-09 13:43:46 +08:00
parent 44ed5fcf3d
commit 8b3da2d31a
5 changed files with 126 additions and 5 deletions

View File

@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.18)
project(FramelessHelper LANGUAGES CXX)
option(BUILD_EXAMPLES "Build examples." ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
@ -12,10 +14,24 @@ set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
if(WIN32)
set(CMAKE_DEBUG_POSTFIX d)
else()
set(CMAKE_DEBUG_POSTFIX _debug)
if(NOT CMAKE_DEBUG_POSTFIX)
if(WIN32)
set(CMAKE_DEBUG_POSTFIX d)
else()
set(CMAKE_DEBUG_POSTFIX _debug)
endif()
endif()
if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
endif()
if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
endif()
if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
endif()
find_package(QT NAMES Qt6 Qt5 COMPONENTS Gui REQUIRED)
@ -73,6 +89,7 @@ if(WIN32 AND BUILD_SHARED_LIBS)
endif()
add_library(${PROJECT_NAME} ${SOURCES})
add_library(wangwenx190::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
if(NOT BUILD_SHARED_LIBS)
target_compile_definitions(${PROJECT_NAME} PUBLIC
@ -128,3 +145,7 @@ endif()
target_include_directories(${PROJECT_NAME} PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>"
)
if(BUILD_EXAMPLES)
add_subdirectory(examples)
endif()

6
examples/CMakeLists.txt Normal file
View File

@ -0,0 +1,6 @@
if(TARGET Qt${QT_VERSION_MAJOR}::Widgets)
add_subdirectory(widget)
endif()
if(TARGET Qt${QT_VERSION_MAJOR}::Quick)
add_subdirectory(quick)
endif()

View File

@ -0,0 +1,47 @@
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
find_package(QT NAMES Qt6 Qt5 COMPONENTS Quick QuickControls2 REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Quick QuickControls2 REQUIRED)
set(SOURCES
../images.qrc
qml.qrc
main.cpp
)
if(WIN32)
enable_language(RC)
list(APPEND SOURCES ../windows.rc ../windows.manifest)
endif()
add_executable(Quick WIN32 ${SOURCES})
target_link_libraries(Quick PRIVATE
Qt${QT_VERSION_MAJOR}::Quick
Qt${QT_VERSION_MAJOR}::QuickControls2
wangwenx190::FramelessHelper
)
target_compile_definitions(Quick PRIVATE
QT_NO_CAST_FROM_ASCII
QT_NO_CAST_TO_ASCII
QT_NO_KEYWORDS
QT_DEPRECATED_WARNINGS
QT_DISABLE_DEPRECATED_BEFORE=0x060000
)
if(MSVC)
target_compile_options(Quick PRIVATE /utf-8)
if(NOT (CMAKE_BUILD_TYPE STREQUAL "Debug"))
target_compile_options(Quick PRIVATE /guard:cf)
target_link_options(Quick PRIVATE /GUARD:CF)
endif()
endif()
if(WIN32)
target_link_libraries(Quick PRIVATE user32 shell32 gdi32 dwmapi)
endif()

View File

@ -0,0 +1,47 @@
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED)
set(SOURCES
../images.qrc
widget.h
widget.cpp
main.cpp
)
if(WIN32)
enable_language(RC)
list(APPEND SOURCES ../windows.rc ../windows.manifest)
endif()
add_executable(Widget WIN32 ${SOURCES})
target_link_libraries(Widget PRIVATE
Qt${QT_VERSION_MAJOR}::Widgets
wangwenx190::FramelessHelper
)
target_compile_definitions(Widget PRIVATE
QT_NO_CAST_FROM_ASCII
QT_NO_CAST_TO_ASCII
QT_NO_KEYWORDS
QT_DEPRECATED_WARNINGS
QT_DISABLE_DEPRECATED_BEFORE=0x060000
)
if(MSVC)
target_compile_options(Widget PRIVATE /utf-8)
if(NOT (CMAKE_BUILD_TYPE STREQUAL "Debug"))
target_compile_options(Widget PRIVATE /guard:cf)
target_link_options(Widget PRIVATE /GUARD:CF)
endif()
endif()
if(WIN32)
target_link_libraries(Widget PRIVATE user32 shell32 gdi32 dwmapi)
endif()

View File

@ -26,7 +26,7 @@
IDI_ICON1 ICON "windows.ico"
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "windows.manifest"
//CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "windows.manifest"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0