From 9353dfcb17e44f9649d1feecbb765c7c4c0b50ae Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Mon, 27 Sep 2021 00:12:37 +0200 Subject: [PATCH] git subrepo pull (merge) packages/rang subrepo: subdir: "packages/rang" merged: "a083cae9d" upstream: origin: "git@github.com:agauniyal/rang.git" branch: "master" commit: "a083cae9d" git-subrepo: version: "0.4.3" origin: "git@github.com:ingydotnet/git-subrepo.git" commit: "2f68596" --- packages/rang/.gitrepo | 6 +- packages/rang/.travis.yml | 154 ----------------------- packages/rang/CMakeLists.txt | 89 ++++++++++++- packages/rang/cmake/CMakeUtilities.cmake | 60 +++++++++ packages/rang/cmake/rang-config.cmake.in | 4 + packages/rang/cmake/rang.pc.in | 8 ++ packages/rang/conanfile.py | 2 +- packages/rang/meson.build | 2 +- packages/rang/test/CMakeLists.txt | 32 +++++ packages/rang/test_package/meson.build | 2 +- 10 files changed, 195 insertions(+), 164 deletions(-) delete mode 100644 packages/rang/.travis.yml create mode 100644 packages/rang/cmake/CMakeUtilities.cmake create mode 100644 packages/rang/cmake/rang-config.cmake.in create mode 100644 packages/rang/cmake/rang.pc.in create mode 100644 packages/rang/test/CMakeLists.txt diff --git a/packages/rang/.gitrepo b/packages/rang/.gitrepo index 063e422be..07b36cbe1 100644 --- a/packages/rang/.gitrepo +++ b/packages/rang/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = git@github.com:agauniyal/rang.git branch = master - commit = cabe04d6d6b05356fa8f9741704924788f0dd762 - parent = 61d96553d759fb36c6592e9b2b41a4af8acc45f1 - cmdver = 0.4.0 + commit = a083cae9d64edd66d0ecdd4ddebac20d090c8693 + parent = d97199d99e580797e39a626ad2ac6d87c125bcb5 + cmdver = 0.4.3 method = merge diff --git a/packages/rang/.travis.yml b/packages/rang/.travis.yml deleted file mode 100644 index c85aa7957..000000000 --- a/packages/rang/.travis.yml +++ /dev/null @@ -1,154 +0,0 @@ -dist: trusty -sudo: false -group: travis_latest -language: c++ - -env: - global: - - COMPILER=g++ - -addons: - apt: - sources: &apt_sources - - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.5 - - llvm-toolchain-precise-3.6 - - llvm-toolchain-precise-3.7 - - llvm-toolchain-precise-3.8 - - llvm-toolchain-trusty-3.9 - - llvm-toolchain-trusty-4.0 - - llvm-toolchain-trusty-5.0 - -compiler: clang -os: linux - -matrix: - fast_finish: true - include: - - env: COMPILER=g++-5 - compiler: gcc - addons: &gcc5 - apt: - packages: ["g++-5", "python3-pip", "lcov"] - sources: *apt_sources - - - env: COMPILER=g++-6 - compiler: gcc - addons: &gcc6 - apt: - packages: ["g++-6", "python3-pip", "lcov"] - sources: *apt_sources - - - env: COMPILER=g++-7 - compiler: gcc - addons: &gcc7 - apt: - packages: ["g++-7", "python3-pip", "lcov"] - sources: *apt_sources - - - env: COMPILER=clang++-3.5 - compiler: clang - addons: &clang35 - apt: - packages: ["clang-3.5", "g++-7", "python3-pip", "lcov"] - sources: *apt_sources - - - env: COMPILER=clang++-3.6 - compiler: clang - addons: &clang36 - apt: - packages: ["clang-3.6", "g++-7", "python3-pip", "lcov"] - sources: *apt_sources - - - env: COMPILER=clang++-3.7 - compiler: clang - addons: &clang37 - apt: - packages: ["clang-3.7", "g++-7", "python3-pip", "lcov"] - sources: *apt_sources - - - env: COMPILER=clang++-3.8 - compiler: clang - addons: &clang38 - apt: - packages: ["clang-3.8", "g++-7", "python3-pip", "lcov"] - sources: *apt_sources - - - env: COMPILER=clang++-3.9 - compiler: clang - addons: &clang39 - apt: - packages: ["clang-3.9", "g++-7", "python3-pip", "lcov"] - sources: *apt_sources - - - env: COMPILER=clang++-4.0 - compiler: clang - addons: &clang40 - apt: - packages: ["clang-4.0", "g++-7", "python3-pip", "lcov"] - sources: *apt_sources - - - env: COMPILER=clang++-5.0 - compiler: clang - addons: &clang50 - apt: - packages: ["clang-5.0", "g++-7", "python3-pip", "lcov"] - sources: *apt_sources - - allow_failures: - - env: COMPILER=clang++-3.7 - compiler: clang - - - env: COMPILER=clang++-3.9 - compiler: clang - - -install: - - wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip && unzip -q ninja-linux.zip -d build-ninja - - wget https://github.com/danmar/cppcheck/releases/download/1.81/cppcheck-1.81.zip && unzip -q cppcheck-1.81.zip - - cd cppcheck-1.81/ && make SRCDIR=build CFGDIR=cfg CXXFLAGS="-O1 -DNDEBUG" -j2 && cd .. - - pip3 install --user meson - - pip3 install --user conan - - conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan - - export PATH="`pwd`/build-ninja:${PATH}" - - export PATH="`pwd`/cppcheck-1.81/:${PATH}" - - export PATH="~/.local/bin:${PATH}" - -before_script: - - export CXX=$COMPILER - - mkdir debug && cd debug - - conan install .. - - conan build .. - - meson configure -Dbuildtype=debug - - meson configure -Dwarning_level=3 - - if [[ "${COMPILER}" == clang++* ]]; then meson configure -Db_sanitize="address,undefined"; fi; - - meson configure -Db_coverage=true - - ninja - - cd .. - - mkdir release-sanitize && cd release-sanitize - - conan install .. - - conan build .. - - meson configure -Dbuildtype=release - - meson configure -Dwarning_level=3 - - if [[ "${COMPILER}" == clang* ]]; then meson configure -Db_sanitize="address,undefined"; fi; - - ninja - - cd .. - - mkdir release && cd release - - conan install .. - - conan build .. - - meson configure -Dbuildtype=release - - meson configure -Dwarning_level=3 - - ninja - - cd .. - -script: - - cd release && ./test/mainTest && ./test/colorTest && ./test/envTermMissing - - ninja cppcheck && cd .. - -after_success: - - cd debug && ./test/mainTest && ./test/colorTest && ./test/envTermMissing - - bash <(curl -s https://codecov.io/bash) - - cd .. && cd release-sanitize && ./test/mainTest && ./test/colorTest && ./test/envTermMissing - -notifications: - email: false diff --git a/packages/rang/CMakeLists.txt b/packages/rang/CMakeLists.txt index bca467e9d..680f96fe1 100644 --- a/packages/rang/CMakeLists.txt +++ b/packages/rang/CMakeLists.txt @@ -1,5 +1,86 @@ -cmake_minimum_required (VERSION 2.8) -project (rang) +cmake_minimum_required(VERSION 3.1) -include_directories(include) -install(FILES ${PROJECT_SOURCE_DIR}/include/rang.hpp DESTINATION include) +project(rang + VERSION 3.2.0 + LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +include(cmake/CMakeUtilities.cmake) +include(GNUInstallDirs) +set_verbose(RANG_INC_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE STRING + "Installation directory for include files, a relative path that " + "will be joined with ${CMAKE_INSTALL_PREFIX} or an absolute path.") + +set(RANG_HEADERS include/rang.hpp) + +add_library(${PROJECT_NAME} INTERFACE) + +target_include_directories(rang INTERFACE + $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> + $<INSTALL_INTERFACE:${RANG_INC_DIR}> + ) + +include(CMakePackageConfigHelpers) + +set_verbose(RANG_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/rang CACHE STRING + "Installation directory for cmake files, a relative path that " + "will be joined with ${CMAKE_INSTALL_PREFIX} or an absolute " + "path.") +set(version_config ${PROJECT_BINARY_DIR}/rang-config-version.cmake) +set(project_config ${PROJECT_BINARY_DIR}/rang-config.cmake) +set(pkgconfig ${PROJECT_BINARY_DIR}/rang.pc) +set(targets_export_name rang-targets) + +set_verbose(RANG_PKGCONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig CACHE PATH + "Installation directory for pkgconfig (.pc) files, a relative " + "path that will be joined with ${CMAKE_INSTALL_PREFIX} or an " + "absolute path.") + +write_basic_package_version_file( + ${version_config} + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion + ) + +join_paths(includedir_for_pc_file "\${prefix}" "${RANG_INC_DIR}") + +# Configure the PkgConfig +configure_file( + "${PROJECT_SOURCE_DIR}/cmake/rang.pc.in" + "${pkgconfig}" + @ONLY + ) + +# Configuring the CMake Installer Helper +configure_package_config_file( + ${PROJECT_SOURCE_DIR}/cmake/rang-config.cmake.in + ${project_config} + INSTALL_DESTINATION ${RANG_CMAKE_DIR} + ) + +set(INSTALL_TARGETS rang) + +# Install the library and headers. +install(TARGETS ${INSTALL_TARGETS} EXPORT ${targets_export_name} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + +# Use a namespace because CMake provides better diagnostics for namespaced +# imported targets. +export(TARGETS ${INSTALL_TARGETS} NAMESPACE rang:: + FILE ${PROJECT_BINARY_DIR}/${targets_export_name}.cmake + ) + +# Install version, config and target files. +install( + FILES ${project_config} ${version_config} + DESTINATION ${RANG_CMAKE_DIR} + ) + +install(EXPORT ${targets_export_name} + DESTINATION ${RANG_CMAKE_DIR} + NAMESPACE rang::) + +install(FILES ${RANG_HEADERS} DESTINATION "${RANG_INC_DIR}") +install(FILES "${pkgconfig}" DESTINATION "${RANG_PKGCONFIG_DIR}") diff --git a/packages/rang/cmake/CMakeUtilities.cmake b/packages/rang/cmake/CMakeUtilities.cmake new file mode 100644 index 000000000..3d4a10b31 --- /dev/null +++ b/packages/rang/cmake/CMakeUtilities.cmake @@ -0,0 +1,60 @@ +# This module provides function for joining paths +# known from from most languages +# +# Original license: +# SPDX-License-Identifier: (MIT OR CC0-1.0) +# Explicit permission given to distribute this module under +# the terms of the project as described in /LICENSE.rst. +# Copyright 2020 Jan Tojnar +# https://github.com/jtojnar/cmake-snips +# +# Modelled after Python’s os.path.join +# https://docs.python.org/3.7/library/os.path.html#os.path.join +# Windows not supported +function(join_paths joined_path first_path_segment) + set(temp_path "${first_path_segment}") + foreach(current_segment IN LISTS ARGN) + if(NOT ("${current_segment}" STREQUAL "")) + if(IS_ABSOLUTE "${current_segment}") + set(temp_path "${current_segment}") + else() + set(temp_path "${temp_path}/${current_segment}") + endif() + endif() + endforeach() + set(${joined_path} "${temp_path}" PARENT_SCOPE) +endfunction() + +# Joins arguments and places the results in ${result_var}. +function(join result_var) + set(result "") + foreach (arg ${ARGN}) + set(result "${result}${arg}") + endforeach () + set(${result_var} "${result}" PARENT_SCOPE) +endfunction() + +function(enable_module target) + if (MSVC) + set(BMI ${CMAKE_CURRENT_BINARY_DIR}/${target}.ifc) + target_compile_options(${target} + PRIVATE /interface /ifcOutput ${BMI} + INTERFACE /reference fmt=${BMI}) + endif () + set_target_properties(${target} PROPERTIES ADDITIONAL_CLEAN_FILES ${BMI}) + set_source_files_properties(${BMI} PROPERTIES GENERATED ON) +endfunction() + +function(set_verbose) + # cmake_parse_arguments is broken in CMake 3.4 (cannot parse CACHE) so use + # list instead. + list(GET ARGN 0 var) + list(REMOVE_AT ARGN 0) + list(GET ARGN 0 val) + list(REMOVE_AT ARGN 0) + list(REMOVE_AT ARGN 0) + list(GET ARGN 0 type) + list(REMOVE_AT ARGN 0) + join(doc ${ARGN}) + set(${var} ${val} CACHE ${type} ${doc}) +endfunction() \ No newline at end of file diff --git a/packages/rang/cmake/rang-config.cmake.in b/packages/rang/cmake/rang-config.cmake.in new file mode 100644 index 000000000..ea9c953fd --- /dev/null +++ b/packages/rang/cmake/rang-config.cmake.in @@ -0,0 +1,4 @@ +@PACKAGE_INIT@ + +include(${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake) +check_required_components(rang) \ No newline at end of file diff --git a/packages/rang/cmake/rang.pc.in b/packages/rang/cmake/rang.pc.in new file mode 100644 index 000000000..5e98792af --- /dev/null +++ b/packages/rang/cmake/rang.pc.in @@ -0,0 +1,8 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=@CMAKE_INSTALL_PREFIX@ +includedir=@includedir_for_pc_file@ + +Name: rang +Description: A Minimal, Header only Modern c++ library for terminal goodies +Version: @PROJECT_VERSION@ +Cflags: -I${includedir} diff --git a/packages/rang/conanfile.py b/packages/rang/conanfile.py index 9ec7632d3..79c2b8c31 100644 --- a/packages/rang/conanfile.py +++ b/packages/rang/conanfile.py @@ -3,7 +3,7 @@ from conans import ConanFile, Meson class RangConan(ConanFile): name = "rang" - version = "3.1.0" + version = "3.2.0" license = "The Unlicense" url = "https://github.com/agauniyal/rang" description = "A Minimal, Header only Modern c++ library for colors in your terminal" diff --git a/packages/rang/meson.build b/packages/rang/meson.build index 1af4a1044..0a7491a81 100644 --- a/packages/rang/meson.build +++ b/packages/rang/meson.build @@ -1,4 +1,4 @@ -project('rang', 'cpp', version : '3.1.0', +project('rang', 'cpp', version : '3.2.0', default_options : ['cpp_std=c++11']) inc = include_directories('include') diff --git a/packages/rang/test/CMakeLists.txt b/packages/rang/test/CMakeLists.txt new file mode 100644 index 000000000..39ced202e --- /dev/null +++ b/packages/rang/test/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 2.8.12) + +project(rang-test) + +set(CMAKE_CXX_STANDARD 11 ) +set(CMAKE_CXX_STANDARD_REQUIRED ON ) +set(CMAKE_CXX_EXTENSIONS OFF) + +function(rang_add_test file_name) + add_executable("${file_name}" "${file_name}.cpp") + target_link_libraries("${file_name}" rang) +endfunction() + +# simple tests ################################################################# + +rang_add_test(colorTest) +rang_add_test(envTermMissing) + +# test that uses doctest ####################################################### + +set(doctest_DIR "" CACHE PATH "Directory containing doctestConfig.cmake") +find_package(doctest) + +if (${doctest_FOUND} EQUAL 1) + add_executable(all_rang_tests "test.cpp") + target_link_libraries(all_rang_tests rang doctest::doctest) + + enable_testing() + + # cd build_dir && ctest --test-command all_tests + add_test(NAME all_tests COMMAND "$<TARGET_FILE:all_rang_tests>") +endif() diff --git a/packages/rang/test_package/meson.build b/packages/rang/test_package/meson.build index 7930ce6a9..638dc5cc2 100644 --- a/packages/rang/test_package/meson.build +++ b/packages/rang/test_package/meson.build @@ -1,4 +1,4 @@ -project('rang', 'cpp', version : '3.1.0', +project('rang', 'cpp', version : '3.2.0', default_options : ['cpp_std=c++11']) inc = include_directories('include') -- GitLab