mirror of
https://github.com/ModOrganizer2/githubpp.git
synced 2026-07-27 14:04:49 -07:00
Refactor to create a proper CMake target.
This commit is contained in:
+27
-5
@@ -1,10 +1,32 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
if(DEFINED DEPENDENCIES_DIR)
|
||||
include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/mo2.cmake)
|
||||
else()
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../cmake_common/mo2.cmake)
|
||||
endif()
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
project(githubpp)
|
||||
|
||||
add_subdirectory(src)
|
||||
|
||||
set_target_properties(githubpp PROPERTIES
|
||||
VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin
|
||||
VS_DEBUGGER_COMMAND ${CMAKE_INSTALL_PREFIX}/bin/ModOrganizer.exe)
|
||||
set_property(DIRECTORY ${PROJECT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT githubpp)
|
||||
|
||||
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.cmake.in
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mo2-githubpp-config.cmake"
|
||||
INSTALL_DESTINATION "lib/cmake/mo2-githubpp"
|
||||
NO_SET_AND_CHECK_MACRO
|
||||
NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
||||
)
|
||||
|
||||
write_basic_package_version_file(
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mo2-githubpp-config-version.cmake"
|
||||
VERSION "0.0.1"
|
||||
COMPATIBILITY AnyNewerVersion
|
||||
ARCH_INDEPENDENT
|
||||
)
|
||||
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/mo2-githubpp-config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/mo2-githubpp-config-version.cmake
|
||||
DESTINATION lib/cmake/mo2-githubpp
|
||||
)
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"configurePresets": [
|
||||
{
|
||||
"errors": {
|
||||
"deprecated": true
|
||||
},
|
||||
"hidden": true,
|
||||
"name": "cmake-dev",
|
||||
"warnings": {
|
||||
"deprecated": true,
|
||||
"dev": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"binaryDir": "${sourceDir}/vsbuild",
|
||||
"architecture": {
|
||||
"strategy": "set",
|
||||
"value": "x64"
|
||||
},
|
||||
"cacheVariables": {
|
||||
"CMAKE_CXX_FLAGS": "/EHsc /MP /W4"
|
||||
},
|
||||
"generator": "Visual Studio 17 2022",
|
||||
"inherits": ["cmake-dev"],
|
||||
"name": "vs2022-windows",
|
||||
"toolset": "v143"
|
||||
}
|
||||
],
|
||||
"buildPresets": [
|
||||
{
|
||||
"name": "vs2022-windows",
|
||||
"configurePreset": "vs2022-windows"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include ( "${CMAKE_CURRENT_LIST_DIR}/mo2-githubpp-targets.cmake" )
|
||||
+47
-4
@@ -1,8 +1,51 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
find_package(Qt6 CONFIG REQUIRED COMPONENTS Network)
|
||||
|
||||
add_library(githubpp STATIC)
|
||||
mo2_configure_library(githubpp
|
||||
WARNINGS OFF
|
||||
|
||||
target_sources(githubpp
|
||||
PRIVATE
|
||||
github.cpp
|
||||
PUBLIC
|
||||
FILE_SET HEADERS
|
||||
BASE_DIRS ${CMAKE_CURRENT_LIST_DIR}/../include
|
||||
FILES ${CMAKE_CURRENT_LIST_DIR}/../include/githubpp/github.h
|
||||
)
|
||||
|
||||
target_link_libraries(githubpp PRIVATE Qt::Core Qt::Network)
|
||||
set_target_properties(githubpp
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
PRIVATE_DEPENDS Qt::Core Qt::Network)
|
||||
mo2_install_target(githubpp)
|
||||
CXX_STANDARD 20
|
||||
)
|
||||
target_include_directories(githubpp PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../include/githubpp)
|
||||
|
||||
if (MSVC)
|
||||
target_compile_options(githubpp
|
||||
PRIVATE
|
||||
"/MP"
|
||||
"/Wall"
|
||||
"/external:anglebrackets"
|
||||
"/external:W0"
|
||||
)
|
||||
target_link_options(githubpp
|
||||
PRIVATE
|
||||
$<$<CONFIG:RelWithDebInfo>:/LTCG /INCREMENTAL:NO /OPT:REF /OPT:ICF>
|
||||
)
|
||||
|
||||
set_target_properties(githubpp PROPERTIES
|
||||
VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin
|
||||
VS_DEBUGGER_COMMAND ${CMAKE_INSTALL_PREFIX}/bin/ModOrganizer.exe
|
||||
VS_STARTUP_PROJECT githubpp)
|
||||
endif()
|
||||
|
||||
add_library(mo2::githubpp ALIAS githubpp)
|
||||
|
||||
# installation
|
||||
install(TARGETS githubpp EXPORT githubppTargets FILE_SET HEADERS)
|
||||
install(EXPORT githubppTargets
|
||||
FILE mo2-githubpp-targets.cmake
|
||||
NAMESPACE mo2::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/mo2-githubpp
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user