From ebda9f034267e4a8b9a99de381dba79efb18dba5 Mon Sep 17 00:00:00 2001 From: bergmann Date: Mon, 24 Jun 2019 22:27:28 +0200 Subject: [PATCH] * Replaced cpputils with cppcore library --- .gitmodules | 3 + CMakeLists.txt | 67 +++++++++++++++---- cmake/cppargs-config.cmake | 10 +++ cmake/cppargs-var.cmake | 20 ++++++ cmake/modules | 2 +- include/cppargs.h | 1 + include/cppargs/group/group.inl | 6 +- include/cppargs/group/member_group.inl | 4 +- include/cppargs/group/simple_group.inl | 5 +- include/cppargs/misc/misc.h | 11 --- include/cppargs/misc/misc.inl | 14 ---- include/cppargs/misc/option_parser.inl | 10 +-- include/cppargs/misc/printing.inl | 6 +- .../options/member/member_predicate_option.h | 2 +- include/cppargs/options/option.h | 51 +++++++++++--- include/cppargs/options/option.inl | 20 +++--- .../options/simple/simple_predicate_option.h | 2 +- include/cppargs/parser/member_parser.h | 2 +- include/cppargs/parser/member_parser.inl | 6 +- include/cppargs/parser/simple_parser.h | 3 +- include/cppargs/parser/simple_parser.inl | 5 +- src/CMakeLists.txt | 30 +++++---- test/CMakeLists.txt | 37 ++++++---- 23 files changed, 203 insertions(+), 114 deletions(-) create mode 100644 cmake/cppargs-config.cmake create mode 100644 cmake/cppargs-var.cmake delete mode 100644 include/cppargs/misc/misc.h delete mode 100644 include/cppargs/misc/misc.inl diff --git a/.gitmodules b/.gitmodules index a89889c..148f1e8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "cmake/modules"] path = cmake/modules url = b3rgmann@git.bergmann89.de:cpp/CmakeModules.git +[submodule "/home/bergmann/projects/TotoStarOnline/projects/worker/cppargs/cmake/modules"] + path = /home/bergmann/projects/TotoStarOnline/projects/worker/cppargs/cmake/modules + url = b3rgmann@git.bergmann89.de:cpp/CmakeModules.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 845d23f..3b96cd0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,15 +1,56 @@ # Initialize CMake ################################################################################ -CMake_Minimum_Required ( VERSION 3.5.1 FATAL_ERROR ) -Include ( CTest ) -If ( NOT CMAKE_BUILD_TYPE ) - Set ( CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build!" FORCE ) -EndIf ( NOT CMAKE_BUILD_TYPE ) -Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ) - -# Projects ######################################################################################## - -Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src ) -Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/test ) +CMake_Minimum_Required ( VERSION 3.12.0 FATAL_ERROR ) + +# Set CMAKE_BUILD_TYPE +If ( NOT CMAKE_BUILD_TYPE ) + Set ( CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build!" FORCE ) +EndIf ( NOT CMAKE_BUILD_TYPE ) +Set_Property ( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo MinSizeRel ) + +# Set CMAKE_MODULE_PATH +If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) + Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) +EndIf ( ) +If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) + Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ) +EndIf ( ) + +# Project ######################################################################################### + +Include ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppargs-var.cmake" ) +Project ( cppargs + DESCRIPTION "A simple library" + VERSION "${CPPARGS_VERSION}" ) +Include ( CTest ) +Include ( GNUInstallDirs ) + +# Subdirectories +Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src ) +Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/test ) + +# Install +Include ( CMakePackageConfigHelpers ) +Write_Basic_Package_Version_File ( "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppargs-config-version.cmake" + VERSION ${CPPARGS_VERSION} + COMPATIBILITY AnyNewerVersion ) +Configure_File ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppargs-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppargs-config.cmake" + @ONLY ) + +Set ( ConfigPackageLocation "${CPPARGS_INSTALL_DIR_SHARE}/cmake" ) +Install ( EXPORT + cppargs + NAMESPACE + cppargs:: + DESTINATION + ${ConfigPackageLocation} ) +Install ( FILES + "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppargs-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppargs-config-version.cmake" + DESTINATION + ${ConfigPackageLocation} + COMPONENT + Devel ) diff --git a/cmake/cppargs-config.cmake b/cmake/cppargs-config.cmake new file mode 100644 index 0000000..dbc43dd --- /dev/null +++ b/cmake/cppargs-config.cmake @@ -0,0 +1,10 @@ +# cppargs-config.cmake - package configuration file + +Message ( WARNING "Please configure the dependencies of this package!" ) +# Include ( CMakeFindDependencyMacro ) +# Find_Dependency ( ) + +Include ( FindPackageHandleStandardArgs ) +Set ( ${CMAKE_FIND_PACKAGE_NAME}_CONFIG ${CMAKE_CURRENT_LIST_FILE} ) +Find_Package_Handle_Standard_Args ( cppargs CONFIG_MODE ) +Include ( "${CMAKE_CURRENT_LIST_DIR}/cppargs.cmake") diff --git a/cmake/cppargs-var.cmake b/cmake/cppargs-var.cmake new file mode 100644 index 0000000..744a5f4 --- /dev/null +++ b/cmake/cppargs-var.cmake @@ -0,0 +1,20 @@ +# Version +Set ( CPPARGS_VERSION_MAJOR 1 ) +Set ( CPPARGS_VERSION_MINOR 0 ) +Set ( CPPARGS_VERSION_PATCH 0 ) +Set ( CPPARGS_VERSION_BUILD 0 ) +Set ( CPPARGS_VERSION_SHORT "${CPPARGS_VERSION_MAJOR}.${CPPARGS_VERSION_MINOR}" ) +Set ( CPPARGS_VERSION "${CPPARGS_VERSION_SHORT}.${CPPARGS_VERSION_PATCH}.${CPPARGS_VERSION_BUILD}" ) +Set ( CPPARGS_NAME "cppargs-${CPPARGS_VERSION_SHORT}" ) +Set ( CPPARGS_OUTPUTNAME "cppargs" ) + +# Install directories +Set ( CPPARGS_INSTALL_DIR_INCLUDE "include/${CPPARGS_NAME}" ) +Set ( CPPARGS_INSTALL_DIR_LIB "lib" ) +Set ( CPPARGS_INSTALL_DIR_SHARE "share/${CPPARGS_NAME}" ) + +# C Standard +Set ( CMAKE_C_STANDARD 11 ) +Set ( CMAKE_CXX_STANDARD 17 ) +Set ( CMAKE_C_STANDARD_REQUIRED ON ) +Set ( CMAKE_CXX_STANDARD_REQUIRED ON ) diff --git a/cmake/modules b/cmake/modules index 1e74005..1a32531 160000 --- a/cmake/modules +++ b/cmake/modules @@ -1 +1 @@ -Subproject commit 1e74005bc2f91434fecb2e5f698c21b73f7e3a13 +Subproject commit 1a32531aef2deeebd5637b1873bc4e976628801c diff --git a/include/cppargs.h b/include/cppargs.h index c487dca..a128099 100644 --- a/include/cppargs.h +++ b/include/cppargs.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include diff --git a/include/cppargs/group/group.inl b/include/cppargs/group/group.inl index e490672..74eee55 100644 --- a/include/cppargs/group/group.inl +++ b/include/cppargs/group/group.inl @@ -1,6 +1,6 @@ #pragma once -#include +// #include #include "group.h" @@ -13,7 +13,7 @@ namespace cppargs template struct group_init< std::unique_ptr, - utl::mp::enable_if>> + std::enable_if_t>> { using option_ptr_type = std::unique_ptr