Skip to content
This repository has been archived by the owner on Dec 19, 2023. It is now read-only.

Commit

Permalink
cmake: move config system to cmake
Browse files Browse the repository at this point in the history
  • Loading branch information
wangwenx190 committed Sep 4, 2023
1 parent 97112f8 commit 4df552d
Show file tree
Hide file tree
Showing 4 changed files with 145 additions and 156 deletions.
142 changes: 142 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,148 @@ if(FRAMELESSHELPER_BUILD_QUICK AND NOT TARGET Qt${QT_VERSION_MAJOR}::Quick)
set(FRAMELESSHELPER_BUILD_QUICK OFF)
endif()

set(FRAMELESSHELPER_LICENSE_HEADER "/*
* MIT License
*
* Copyright (C) 2021-2023 by wangwenx190 (Yuhang Zhao)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the \"Software\"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/")

set(FRAMELESSHELPER_CMAKE_WARNING "// Generated automatically by CMake.
// WARNING! DO NOT EDIT THIS FILE MANUALLY!
// ALL CHANGES WILL BE LOST AFTER RE-CONFIGURING!
// Also please do not include this file directly,
// it's designed to be included by FramelessHelper's own headers.")

### VERSION BEGIN ###
set(FRAMELESSHELPER_VERSION_FILE "${PROJECT_BINARY_DIR}/framelesshelper.version")
if(NOT EXISTS "${FRAMELESSHELPER_VERSION_FILE}")
set(__version_content "${FRAMELESSHELPER_LICENSE_HEADER}
${FRAMELESSHELPER_CMAKE_WARNING}
#ifndef _FRAMELESSHELPER_VERSION_DEFINED_
#define _FRAMELESSHELPER_VERSION_DEFINED_
[[maybe_unused]] inline constexpr const int FRAMELESSHELPER_VERSION_MAJOR = ${PROJECT_VERSION_MAJOR};
[[maybe_unused]] inline constexpr const int FRAMELESSHELPER_VERSION_MINOR = ${PROJECT_VERSION_MINOR};
[[maybe_unused]] inline constexpr const int FRAMELESSHELPER_VERSION_PATCH = ${PROJECT_VERSION_PATCH};
//[[maybe_unused]] inline constexpr const int FRAMELESSHELPER_VERSION_TWEAK = ${PROJECT_VERSION_TWEAK};
[[maybe_unused]] inline constexpr const char FRAMELESSHELPER_VERSION_STR[] = \"${PROJECT_VERSION}\";
[[maybe_unused]] inline constexpr const char FRAMELESSHELPER_COMMIT_STR[] = \"${PROJECT_VERSION_COMMIT}\";
[[maybe_unused]] inline constexpr const char FRAMELESSHELPER_COMPILE_DATETIME_STR[] = \"${PROJECT_COMPILE_DATETIME}\";
#define __FRAMELESSHELPER_VERSION_MAJOR__ ${PROJECT_VERSION_MAJOR}
#define __FRAMELESSHELPER_VERSION_MINOR__ ${PROJECT_VERSION_MINOR}
#define __FRAMELESSHELPER_VERSION_PATCH__ ${PROJECT_VERSION_PATCH}
//#define __FRAMELESSHELPER_VERSION_TWEAK__ ${PROJECT_VERSION_TWEAK}
#define __FRAMELESSHELPER_VERSION__ ${PROJECT_VERSION_HEX}
#define __FRAMELESSHELPER__ ${PROJECT_VERSION_HEX}
#endif // _FRAMELESSHELPER_VERSION_DEFINED_
")
file(WRITE "${FRAMELESSHELPER_VERSION_FILE}" "${__version_content}")
unset(__version_content)
endif()
### VERSION END ###

### MODULAR CONFIGURATION BEGIN ###
set(FRAMELESSHELPER_CONFIG_FILE "${PROJECT_BINARY_DIR}/framelesshelper.config")
if(NOT EXISTS "${FRAMELESSHELPER_CONFIG_FILE}")
set(FRAMELESSHELPER_FEATURE_static_build "-1")
if(FRAMELESSHELPER_BUILD_STATIC)
set(FRAMELESSHELPER_FEATURE_static_build "1")
endif()
set(FRAMELESSHELPER_FEATURE_widgets "-1")
if(FRAMELESSHELPER_BUILD_WIDGETS)
set(FRAMELESSHELPER_FEATURE_widgets "1")
endif()
set(FRAMELESSHELPER_FEATURE_quick "-1")
if(FRAMELESSHELPER_BUILD_QUICK)
set(FRAMELESSHELPER_FEATURE_quick "1")
endif()
set(FRAMELESSHELPER_FEATURE_debug_output "-1")
if(NOT FRAMELESSHELPER_NO_DEBUG_OUTPUT)
set(FRAMELESSHELPER_FEATURE_debug_output "1")
endif()
set(FRAMELESSHELPER_FEATURE_bundle_resource "-1")
if(NOT FRAMELESSHELPER_NO_BUNDLE_RESOURCE)
set(FRAMELESSHELPER_FEATURE_bundle_resource "1")
endif()
set(FRAMELESSHELPER_FEATURE_private_qt "-1")
if(NOT FRAMELESSHELPER_NO_PRIVATE)
set(FRAMELESSHELPER_FEATURE_private_qt "1")
endif()
set(FRAMELESSHELPER_FEATURE_window "-1")
if(NOT FRAMELESSHELPER_NO_WINDOW)
set(FRAMELESSHELPER_FEATURE_window "1")
endif()
set(FRAMELESSHELPER_FEATURE_titlebar "-1")
if(NOT FRAMELESSHELPER_NO_TITLEBAR)
set(FRAMELESSHELPER_FEATURE_titlebar "1")
endif()
set(FRAMELESSHELPER_FEATURE_translation "-1")
if(NOT FRAMELESSHELPER_NO_TRANSLATION)
set(FRAMELESSHELPER_FEATURE_translation "1")
endif()
set(FRAMELESSHELPER_FEATURE_mica_material "-1")
if(NOT FRAMELESSHELPER_NO_MICA_MATERIAL)
set(FRAMELESSHELPER_FEATURE_mica_material "1")
endif()
set(FRAMELESSHELPER_FEATURE_border_painter "-1")
if(NOT FRAMELESSHELPER_NO_BORDER_PAINTER)
set(FRAMELESSHELPER_FEATURE_border_painter "1")
endif()
set(FRAMELESSHELPER_FEATURE_system_button "-1")
if(NOT FRAMELESSHELPER_NO_SYSTEM_BUTTON)
set(FRAMELESSHELPER_FEATURE_system_button "1")
endif()
set(__config_content "${FRAMELESSHELPER_LICENSE_HEADER}
${FRAMELESSHELPER_CMAKE_WARNING}
#pragma once
#ifndef _FRAMELESSHELPER_CONFIG_DEFINED_
#define _FRAMELESSHELPER_CONFIG_DEFINED_
#define FRAMELESSHELPER_FEATURE_static_build ${FRAMELESSHELPER_FEATURE_static_build}
#define FRAMELESSHELPER_FEATURE_widgets ${FRAMELESSHELPER_FEATURE_widgets}
#define FRAMELESSHELPER_FEATURE_quick ${FRAMELESSHELPER_FEATURE_quick}
#define FRAMELESSHELPER_FEATURE_debug_output ${FRAMELESSHELPER_FEATURE_debug_output}
#define FRAMELESSHELPER_FEATURE_bundle_resource ${FRAMELESSHELPER_FEATURE_bundle_resource}
#define FRAMELESSHELPER_FEATURE_private_qt ${FRAMELESSHELPER_FEATURE_private_qt}
#define FRAMELESSHELPER_FEATURE_window ${FRAMELESSHELPER_FEATURE_window}
#define FRAMELESSHELPER_FEATURE_titlebar ${FRAMELESSHELPER_FEATURE_titlebar}
#define FRAMELESSHELPER_FEATURE_translation ${FRAMELESSHELPER_FEATURE_translation}
#define FRAMELESSHELPER_FEATURE_mica_material ${FRAMELESSHELPER_FEATURE_mica_material}
#define FRAMELESSHELPER_FEATURE_border_painter ${FRAMELESSHELPER_FEATURE_border_painter}
#define FRAMELESSHELPER_FEATURE_system_button ${FRAMELESSHELPER_FEATURE_system_button}
#endif // _FRAMELESSHELPER_CONFIG_DEFINED_
")
file(WRITE "${FRAMELESSHELPER_CONFIG_FILE}" "${__config_content}")
unset(__config_content)
endif()
### MODULAR CONFIGURATION END ###

if(TARGET Qt${QT_VERSION_MAJOR}::Core AND TARGET Qt${QT_VERSION_MAJOR}::Gui)
add_subdirectory(src)
else()
Expand Down
59 changes: 3 additions & 56 deletions src/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,70 +50,16 @@ if(UNIX AND NOT APPLE)
endif()
endif()

set(FRAMELESSHELPER_FEATURE_static_build "-1")
if(FRAMELESSHELPER_BUILD_STATIC)
set(FRAMELESSHELPER_FEATURE_static_build "1")
endif()
set(FRAMELESSHELPER_FEATURE_widgets "-1")
if(FRAMELESSHELPER_BUILD_WIDGETS)
set(FRAMELESSHELPER_FEATURE_widgets "1")
endif()
set(FRAMELESSHELPER_FEATURE_quick "-1")
if(FRAMELESSHELPER_BUILD_QUICK)
set(FRAMELESSHELPER_FEATURE_quick "1")
endif()
set(FRAMELESSHELPER_FEATURE_debug_output "-1")
if(NOT FRAMELESSHELPER_NO_DEBUG_OUTPUT)
set(FRAMELESSHELPER_FEATURE_debug_output "1")
endif()
set(FRAMELESSHELPER_FEATURE_bundle_resource "-1")
if(NOT FRAMELESSHELPER_NO_BUNDLE_RESOURCE)
set(FRAMELESSHELPER_FEATURE_bundle_resource "1")
endif()
set(FRAMELESSHELPER_FEATURE_private_qt "-1")
if(NOT FRAMELESSHELPER_NO_PRIVATE)
set(FRAMELESSHELPER_FEATURE_private_qt "1")
endif()
set(FRAMELESSHELPER_FEATURE_window "-1")
if(NOT FRAMELESSHELPER_NO_WINDOW)
set(FRAMELESSHELPER_FEATURE_window "1")
endif()
set(FRAMELESSHELPER_FEATURE_titlebar "-1")
if(NOT FRAMELESSHELPER_NO_TITLEBAR)
set(FRAMELESSHELPER_FEATURE_titlebar "1")
endif()
set(FRAMELESSHELPER_FEATURE_translation "-1")
if(NOT FRAMELESSHELPER_NO_TRANSLATION)
set(FRAMELESSHELPER_FEATURE_translation "1")
endif()
set(FRAMELESSHELPER_FEATURE_mica_material "-1")
if(NOT FRAMELESSHELPER_NO_MICA_MATERIAL)
set(FRAMELESSHELPER_FEATURE_mica_material "1")
endif()
set(FRAMELESSHELPER_FEATURE_border_painter "-1")
if(NOT FRAMELESSHELPER_NO_BORDER_PAINTER)
set(FRAMELESSHELPER_FEATURE_border_painter "1")
endif()
set(FRAMELESSHELPER_FEATURE_system_button "-1")
if(NOT FRAMELESSHELPER_NO_SYSTEM_BUTTON)
set(FRAMELESSHELPER_FEATURE_system_button "1")
endif()

set(SUB_MODULE Core)
set(SUB_MODULE_FULL_NAME ${PROJECT_NAME}${SUB_MODULE})
set(SUB_MODULE_TARGET ${SUB_MODULE_FULL_NAME})
set(SUB_MODULE_PATH ${PROJECT_NAME}/${SUB_MODULE})

set(INCLUDE_PREFIX ../../include/${SUB_MODULE_PATH})

configure_file(framelesshelper.version.in
${CMAKE_CURRENT_BINARY_DIR}/framelesshelper.version @ONLY)
configure_file(framelesshelper.config.in
${CMAKE_CURRENT_BINARY_DIR}/framelesshelper.config @ONLY)

set(PUBLIC_HEADERS
${CMAKE_CURRENT_BINARY_DIR}/framelesshelper.version
${CMAKE_CURRENT_BINARY_DIR}/framelesshelper.config
${FRAMELESSHELPER_VERSION_FILE}
${FRAMELESSHELPER_CONFIG_FILE}
${INCLUDE_PREFIX}/framelesshelpercore_global.h
${INCLUDE_PREFIX}/framelesshelper_qt.h
${INCLUDE_PREFIX}/framelessmanager.h
Expand Down Expand Up @@ -323,6 +269,7 @@ target_include_directories(${SUB_MODULE_TARGET} PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/${INCLUDE_PREFIX}>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/${INCLUDE_PREFIX}/private>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
"$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${SUB_MODULE_PATH}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${SUB_MODULE_PATH}/private>"
Expand Down
49 changes: 0 additions & 49 deletions src/core/framelesshelper.config.in

This file was deleted.

51 changes: 0 additions & 51 deletions src/core/framelesshelper.version.in

This file was deleted.

0 comments on commit 4df552d

Please sign in to comment.