From a499714251deec31f171bd4bcba3aeebbdbda76b Mon Sep 17 00:00:00 2001 From: Arniiiii Date: Sat, 21 Sep 2024 03:28:34 +0000 Subject: [PATCH] a lot of fixes --- .dockerignore | 9 + .../ubuntu_test_installed_version.yml | 9 +- BUILD.bazel | 2 +- CMakeLists.txt | 229 +++++++++--------- Dockerfile | 71 ++++++ example/enum_flag_example.cpp | 4 +- example/example.cpp | 4 +- example/example_containers_array.cpp | 2 +- example/example_containers_bitset.cpp | 2 +- example/example_containers_set.cpp | 2 +- example/example_custom_name.cpp | 2 +- example/example_nonascii_name.cpp | 2 +- example/example_switch.cpp | 2 +- module/magic_enum.cppm | 4 +- test/CMakeLists.txt | 24 +- test/test.cpp | 10 +- test/test_aliases.cpp | 4 +- test/test_containers.cpp | 4 +- test/test_flags.cpp | 16 +- test/test_nonascii.cpp | 6 +- test/test_wchar_t.cpp | 4 +- test_installed_version.bash | 13 + 22 files changed, 270 insertions(+), 155 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 test_installed_version.bash diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..381c9eb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +build*/ +.cache/ +.git/ +.github/ +compile_commands.json +.dockerignore +Dockerfile +install_dir/ + diff --git a/.github/workflows/ubuntu_test_installed_version.yml b/.github/workflows/ubuntu_test_installed_version.yml index 1bfd46e..25d7b01 100644 --- a/.github/workflows/ubuntu_test_installed_version.yml +++ b/.github/workflows/ubuntu_test_installed_version.yml @@ -30,6 +30,7 @@ jobs: - name: install library run: | cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release --log-level=DEBUG -DCMAKE_INSTALL_PREFIX=./install_dir + cmake --build ./build -j$(nproc) cmake --install ./build --prefix ./install_dir rm -rf build @@ -37,12 +38,12 @@ jobs: run: CMAKE_PREFIX_PATH="./install_dir" cmake -S. -Bbuild2 -DMAGIC_ENUM_OPT_TEST_INSTALLED_VERSION=1 --log-level=DEBUG - name: build with installed version via cmake - run: cmake --build build2 --config Debug -j4 --verbose + run: cmake --build build2 --config Debug -j$(nproc) --verbose - name: test run: | cd build2 - ctest --build-config Debug -j4 + ctest --build-config Debug -j$(nproc) - name: clear run: rm -rf build2 @@ -51,9 +52,9 @@ jobs: run: CMAKE_PREFIX_PATH="./install_dir" cmake -S. -Bbuild3 -DMAGIC_ENUM_OPT_TEST_INSTALLED_VERSION_PKGCONFIG=1 -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=1 --log-level=DEBUG - name: build with installed version via pkgconfig - run: cmake --build build3 --config Debug -j4 --verbose + run: cmake --build build3 --config Debug -j$(nproc) --verbose - name: test run: | cd build3 - ctest --build-config Debug -j4 + ctest --build-config Debug -j$(nproc) diff --git a/BUILD.bazel b/BUILD.bazel index 356c09d..0700062 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -7,5 +7,5 @@ package(default_visibility = ["//visibility:public"]) cc_library( name = "magic_enum", hdrs = glob(["include/magic_enum/*.hpp"]), - includes = ["include/magic_enum"], + includes = ["include"], ) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2497583..822b64b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,128 +36,127 @@ a local magic_enum via pkgconfig" NO if(${MAGIC_ENUM_OPT_TEST_INSTALLED_VERSION} OR ${MAGIC_ENUM_OPT_TEST_INSTALLED_VERSION_PKGCONFIG}) add_subdirectory(test) -else() + return() +endif() +set(INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/include/magic_enum") +set(EXPORT_NAMESPACE "${PROJECT_NAME}::") - set(INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/include/magic_enum") - set(EXPORT_NAMESPACE "${PROJECT_NAME}::") +add_library(${PROJECT_NAME} INTERFACE) +add_library(${EXPORT_NAMESPACE}${PROJECT_NAME} ALIAS ${PROJECT_NAME}) +target_include_directories( + ${PROJECT_NAME} INTERFACE $ + $ +) - add_library(${PROJECT_NAME} INTERFACE) - add_library(${EXPORT_NAMESPACE}${PROJECT_NAME} ALIAS ${PROJECT_NAME}) - target_include_directories( - ${PROJECT_NAME} INTERFACE $ - $ +if(MAGIC_ENUM_OPT_BUILD_EXAMPLES) + add_subdirectory(example) +endif() + +if(MAGIC_ENUM_OPT_BUILD_TESTS) + enable_testing() + add_subdirectory(test) +endif() + +if(MAGIC_ENUM_OPT_INSTALL) + list(APPEND CMAKE_MODULE_PATH "${ADDITIONAL_MODULES_DIR}/GenPkgConfig") + include(GenPkgConfig) + include(CPackComponent) + include(CMakePackageConfigHelpers) + + install( + TARGETS "${PROJECT_NAME}" + EXPORT ${PROJECT_NAME} + INCLUDES + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + # COMPONENT "${SDK_COMPONENT_NAME}" # component is not allowed for + # includes! + # Headers are installed separately! Includes only marks the headers for + # export ) - if(MAGIC_ENUM_OPT_BUILD_EXAMPLES) - add_subdirectory(example) + if(NOT DEFINED PROJECT_INCLUDE_HEADER_PATTERN) + set(PROJECT_INCLUDE_HEADER_PATTERN "*") endif() - if(MAGIC_ENUM_OPT_BUILD_TESTS) - enable_testing() - add_subdirectory(test) - endif() - - if(MAGIC_ENUM_OPT_INSTALL) - list(APPEND CMAKE_MODULE_PATH "${ADDITIONAL_MODULES_DIR}/GenPkgConfig") - include(GenPkgConfig) - include(CPackComponent) - include(CMakePackageConfigHelpers) - - install( - TARGETS "${PROJECT_NAME}" - EXPORT ${PROJECT_NAME} - INCLUDES - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" - # COMPONENT "${SDK_COMPONENT_NAME}" # component is not allowed for - # includes! - # Headers are installed separately! Includes only marks the headers for - # export - ) - - file(GLOB_RECURSE HEADERS "${INCLUDES}/*.h" "${INCLUDES}/*.hxx" "${INCLUDES}/*.hpp") - foreach(headerFile ${HEADERS}) - get_filename_component(headerFileParentDir "${headerFile}" DIRECTORY) - file(RELATIVE_PATH headerFileRelParentDir "${INCLUDES}" "${headerFileParentDir}") - - install(FILES "${headerFile}" - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${headerFileRelParentDir}" - ) - endforeach() - - set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") - set(CPACK_PACKAGE_DESCRIPTION "${PROJECT_DESCRIPTION}") - set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "all") - set(CPACK_DEBIAN_PACKAGE_NAME "libmagicenum-dev") - set(CPACK_RPM_PACKAGE_NAME "libmagicenum-devel") - set(CPACK_PACKAGE_HOMEPAGE_URL "${PROJECT_HOMEPAGE_URL}") - set(CPACK_PACKAGE_MAINTAINER "${CPACK_PACKAGE_VENDOR}") - set(CPACK_DEBIAN_PACKAGE_DEPENDS "") - set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_PACKAGE_MAINTAINER}") - set(CPACK_PACKAGE_MAINTAINER "${CPACK_PACKAGE_VENDOR}") - set(CPACK_DEB_COMPONENT_INSTALL ON) - set(CPACK_RPM_COMPONENT_INSTALL ON) - set(CPACK_NSIS_COMPONENT_INSTALL ON) - set(CPACK_DEBIAN_COMPRESSION_TYPE "xz") - - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") - set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md") - - set(CMAKE_CONFIG_FILE_BASENAME "${PROJECT_NAME}Config.cmake") - set(CMAKE_EXPORT_FILE_BASENAME "${PROJECT_NAME}Export.cmake") - set(CMAKE_CONFIG_VERSION_FILE_BASENAME "${PROJECT_NAME}ConfigVersion.cmake") - set(CMAKE_CONFIG_VERSION_FILE_NAME - "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CONFIG_VERSION_FILE_BASENAME}" - ) - - export( - TARGETS "${PROJECT_NAME}" - NAMESPACE "${EXPORT_NAMESPACE}" - FILE "${CMAKE_EXPORT_FILE_BASENAME}" - EXPORT_LINK_INTERFACE_LIBRARIES - ) - - install( - EXPORT "${PROJECT_NAME}" - FILE "${CMAKE_CONFIG_FILE_BASENAME}" - NAMESPACE "${EXPORT_NAMESPACE}" - DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}" - ) - - write_basic_package_version_file( - "${CMAKE_CONFIG_VERSION_FILE_NAME}" - # VERSION "100500.100500.100500" # any version of same bitness suits. CMake cannot compare to - # infinity, so use a large number we expect to be greater than any future version - VERSION ${_VERSION} - COMPATIBILITY AnyNewerVersion ARCH_INDEPENDENT - ) - install(FILES "${CMAKE_CONFIG_VERSION_FILE_NAME}" - DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}" - ) - - configure_pkg_config_file( - "${PROJECT_NAME}" - NAME - "${PROJECT_NAME}" - VERSION - "${PROJECT_VERSION}" - DESCRIPTION - "${CPACK_PACKAGE_DESCRIPTION}" - URL - "${CPACK_PACKAGE_HOMEPAGE_URL}" - INSTALL_LIB_DIR - "${CMAKE_INSTALL_DATAROOTDIR}" - INSTALL_INCLUDE_DIR - "${CMAKE_INSTALL_INCLUDEDIR}" - ) - - if(MAGIC_ENUM_OPT_INSTALL_PACKAGE_XML) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/package.xml - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME} - ) - endif() - - include(CPack) + install( + DIRECTORY ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME} + DESTINATION include + FILES_MATCHING + PATTERN "${PROJECT_INCLUDE_HEADER_PATTERN}" + ) + + set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") + set(CPACK_PACKAGE_DESCRIPTION "${PROJECT_DESCRIPTION}") + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "all") + set(CPACK_DEBIAN_PACKAGE_NAME "libmagicenum-dev") + set(CPACK_RPM_PACKAGE_NAME "libmagicenum-devel") + set(CPACK_PACKAGE_HOMEPAGE_URL "${PROJECT_HOMEPAGE_URL}") + set(CPACK_PACKAGE_MAINTAINER "${CPACK_PACKAGE_VENDOR}") + set(CPACK_DEBIAN_PACKAGE_DEPENDS "") + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_PACKAGE_MAINTAINER}") + set(CPACK_PACKAGE_MAINTAINER "${CPACK_PACKAGE_VENDOR}") + set(CPACK_DEB_COMPONENT_INSTALL ON) + set(CPACK_RPM_COMPONENT_INSTALL ON) + set(CPACK_NSIS_COMPONENT_INSTALL ON) + set(CPACK_DEBIAN_COMPRESSION_TYPE "xz") + + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") + set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md") + + set(CMAKE_CONFIG_FILE_BASENAME "${PROJECT_NAME}Config.cmake") + set(CMAKE_EXPORT_FILE_BASENAME "${PROJECT_NAME}Export.cmake") + set(CMAKE_CONFIG_VERSION_FILE_BASENAME "${PROJECT_NAME}ConfigVersion.cmake") + set(CMAKE_CONFIG_VERSION_FILE_NAME + "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CONFIG_VERSION_FILE_BASENAME}" + ) + + export( + TARGETS "${PROJECT_NAME}" + NAMESPACE "${EXPORT_NAMESPACE}" + FILE "${CMAKE_EXPORT_FILE_BASENAME}" + EXPORT_LINK_INTERFACE_LIBRARIES + ) + + install( + EXPORT "${PROJECT_NAME}" + FILE "${CMAKE_CONFIG_FILE_BASENAME}" + NAMESPACE "${EXPORT_NAMESPACE}" + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}" + ) + + write_basic_package_version_file( + "${CMAKE_CONFIG_VERSION_FILE_NAME}" + # VERSION "100500.100500.100500" # any version of same bitness suits. CMake cannot compare to + # infinity, so use a large number we expect to be greater than any future version + VERSION ${_VERSION} + COMPATIBILITY AnyNewerVersion ARCH_INDEPENDENT + ) + install(FILES "${CMAKE_CONFIG_VERSION_FILE_NAME}" + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}" + ) + + configure_pkg_config_file( + "${PROJECT_NAME}" + NAME + "${PROJECT_NAME}" + VERSION + "${PROJECT_VERSION}" + DESCRIPTION + "${CPACK_PACKAGE_DESCRIPTION}" + URL + "${CPACK_PACKAGE_HOMEPAGE_URL}" + INSTALL_LIB_DIR + "${CMAKE_INSTALL_DATAROOTDIR}" + INSTALL_INCLUDE_DIR + "${CMAKE_INSTALL_INCLUDEDIR}" + ) + + if(MAGIC_ENUM_OPT_INSTALL_PACKAGE_XML) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/package.xml + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME} + ) endif() + include(CPack) endif() diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..84236d7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,71 @@ +FROM gentoo/stage3:latest + +RUN echo "Updating Gentoo index registry..." +RUN emerge-webrsync + + +RUN echo "Setting up package manager" +# Allow emerge newer versions of cmake. We need it because vcpkg wants it. +RUN echo "dev-build/cmake ~amd64" >> /etc/portage/package.accept_keywords/unmask +# # Get some packages as binaries and don't compile them. Actually, it allows to not compile only zip :( +# RUN rm -rf /etc/portage/binrepos.conf/* +# RUN echo -e "[binhost]\npriority = 9999\nsync-uri = https://gentoo.osuosl.org/experimental/amd64/binpkg/default/linux/17.1/x86-64/" >> /etc/portage/binrepos.conf/osuosl.conf +# RUN cat /etc/portage/binrepos.conf/* +# Arguments that going to be added automatically to `emerge` command. `man emerge` in help. Or read https://wiki.gentoo.org/wiki/Binary_package_guide/en#Installing_binary_packages . +# RUN echo 'EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --binpkg-respect-use=y --getbinpkg=y --verbose --verbose-conflicts "' >> /etc/portage/make.conf + +RUN echo "Installing dependencies..." + +RUN emerge --quiet --verbose --tree --verbose-conflicts --jobs=2 dev-vcs/git dev-build/cmake zip + +# RUN echo "Installing vcpkg..." +# RUN git clone https://github.com/Microsoft/vcpkg.git && \ +# ./vcpkg/bootstrap-vcpkg.sh -disableMetrics +# +# COPY ./vcpkg.json ./vcpkg.json +# +# RUN echo "Installing dependencies using vcpkg" +# RUN ./vcpkg/vcpkg install + +WORKDIR /backend + +RUN echo "Copy sources of the project" +COPY . . +RUN ls -lah + +# expected to be mounted at runtime as volume. +# COPY resources/ ./resources/ + + +RUN echo "Configuring project..." +RUN cmake -S ./ -B ./build --log-level DEBUG + + +# RUN echo "Building project..." +# RUN cmake --build ./build --parallel $(nproc) --verbose + +RUN echo "really installing" +RUN cmake --install ./build + +RUN echo "checking cmake-cmake" +RUN cmake -S. -B build2 -DMAGIC_ENUM_OPT_TEST_INSTALLED_VERSION=1 --log-level=DEBUG +RUN cmake --build build2 -j $(nproc) --verbose + +RUN echo "checking pkgconfig-cmake" +RUN cat "/usr/local/share/pkgconfig/magic_enum.pc" +RUN cmake -S. -B build3 -DMAGIC_ENUM_OPT_TEST_INSTALLED_VERSION_PKGCONFIG=1 --log-level=DEBUG +RUN cmake --build build3 -j $(nproc) --verbose + + + +# RUN echo "what's with linking?" +# RUN ls -lahR /usr/local/lib64 +# RUN lddtree /usr/local/lib64/libArby.so +# RUN lddtree /usr/local/bin/Arby + +# CMD ./build/Backend + + + + + diff --git a/example/enum_flag_example.cpp b/example/enum_flag_example.cpp index 0109e74..532780a 100644 --- a/example/enum_flag_example.cpp +++ b/example/enum_flag_example.cpp @@ -23,8 +23,8 @@ #include #include -#include -#include +#include +#include enum class AnimalFlags : std::uint64_t { HasClaws = 1 << 10, CanFly = 1 << 20, EatsFish = 1 << 30, Endangered = std::uint64_t{1} << 40 }; // Add specialization `is_flags` to define that enum are flags. diff --git a/example/example.cpp b/example/example.cpp index 922141e..8d06c99 100644 --- a/example/example.cpp +++ b/example/example.cpp @@ -22,8 +22,8 @@ #include -#include -#include +#include +#include enum class Color : int { RED = -10, BLUE = 0, GREEN = 10 }; diff --git a/example/example_containers_array.cpp b/example/example_containers_array.cpp index 70d65dc..6f9c01c 100644 --- a/example/example_containers_array.cpp +++ b/example/example_containers_array.cpp @@ -23,7 +23,7 @@ #include -#include +#include enum class Color { RED = 1, GREEN = 2, BLUE = 4 }; template <> diff --git a/example/example_containers_bitset.cpp b/example/example_containers_bitset.cpp index f50b6b7..3e0c865 100644 --- a/example/example_containers_bitset.cpp +++ b/example/example_containers_bitset.cpp @@ -28,7 +28,7 @@ #include -#include +#include enum class Color { RED = 1, GREEN = 2, BLUE = 4 }; template <> diff --git a/example/example_containers_set.cpp b/example/example_containers_set.cpp index 67de9e7..d017d09 100644 --- a/example/example_containers_set.cpp +++ b/example/example_containers_set.cpp @@ -28,7 +28,7 @@ #include -#include +#include enum class Color { RED = 1, GREEN = 2, BLUE = 4 }; template <> diff --git a/example/example_custom_name.cpp b/example/example_custom_name.cpp index a432c7f..f1e59d8 100644 --- a/example/example_custom_name.cpp +++ b/example/example_custom_name.cpp @@ -22,7 +22,7 @@ #include -#include +#include enum class Color : int { RED = -10, BLUE = 0, GREEN = 10 }; diff --git a/example/example_nonascii_name.cpp b/example/example_nonascii_name.cpp index 4fdbcd8..b974180 100644 --- a/example/example_nonascii_name.cpp +++ b/example/example_nonascii_name.cpp @@ -23,7 +23,7 @@ #include -#include +#include enum class Language : int { 日本語 = 10, diff --git a/example/example_switch.cpp b/example/example_switch.cpp index 76645ed..217f036 100644 --- a/example/example_switch.cpp +++ b/example/example_switch.cpp @@ -24,7 +24,7 @@ #include #define MAGIC_ENUM_ENABLE_HASH -#include +#include enum class Color { RED, BLUE, GREEN }; diff --git a/module/magic_enum.cppm b/module/magic_enum.cppm index db43bcb..e4898cb 100644 --- a/module/magic_enum.cppm +++ b/module/magic_enum.cppm @@ -2,7 +2,7 @@ module; #include #ifndef MAGIC_ENUM_USE_STD_MODULE -#include +#include #endif export module magic_enum; @@ -13,7 +13,7 @@ import std; extern "C++" { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Winclude-angled-in-module-purview" -#include +#include #pragma clang diagnostic pop } #endif diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8fe6bf5..2ccd67b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -6,7 +6,29 @@ endif() if(${MAGIC_ENUM_OPT_TEST_INSTALLED_VERSION_PKGCONFIG}) find_package(PkgConfig) - pkg_check_modules(magic_enum REQUIRED magic_enum) + pkg_check_modules(magic_enum magic_enum) + if(NOT magic_enum_FOUND) + message( + WARNING + "magic_enum via pkgconfig is not found. \ +Next code will try check possible places for some platforms, \ +but there's no guarantee. \ +If you know where the magic_enum pkgconfig files (.pc) are, \ +then specify yourself variable \$\{CMAKE_PREFIX_PATH\} \ +with folder like /a/path/to/magic_enum (for POSIX-like pathes), \ +where in the folder exists share/pkgconfig/magic_enum.pc ." + ) + if(UNIX AND EXISTS "/usr/local/share/pkgconfig/magic_enum.pc") + message(DEBUG "\$\{CMAKE_PREFIX_PATH\} : ${CMAKE_PREFIX_PATH} ") + set(CMAKE_PREFIX_PATH "/usr/local") + message(DEBUG "\$\{CMAKE_PREFIX_PATH\} : ${CMAKE_PREFIX_PATH} ") + pkg_check_modules(magic_enum magic_enum) + endif() + # code place for future workarounds for other platforms... + if(NOT magic_enum_FOUND) + message(FATAL_ERROR "Could not find magic_enum's config. Read a warning above.") + endif() + endif() message(DEBUG "magic_enum_FOUND : ${magic_enum_FOUND}") message(DEBUG "magic_enum_LIBRARIES: ${magic_enum_LIBRARIES}") message(DEBUG "magic_enum_LINK_LIBRARIES: ${magic_enum_LINK_LIBRARIES}") diff --git a/test/test.cpp b/test/test.cpp index 81516fb..ef0459d 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -26,10 +26,10 @@ #define MAGIC_ENUM_NO_CHECK_REFLECTED_ENUM #define MAGIC_ENUM_RANGE_MIN -120 #define MAGIC_ENUM_RANGE_MAX 120 -#include -#include -#include -#include +#include +#include +#include +#include #include #include @@ -1176,7 +1176,7 @@ TEST_CASE("multdimensional-switch-case") { #if defined(__cpp_lib_format) -#include +#include TEST_CASE("format-base") { REQUIRE(std::format("{}", Color::RED) == "red"); diff --git a/test/test_aliases.cpp b/test/test_aliases.cpp index 4af111e..2a012e7 100644 --- a/test/test_aliases.cpp +++ b/test/test_aliases.cpp @@ -96,8 +96,8 @@ constexpr bool operator==(MyStringView lhs, MyStringView rhs) { #define MAGIC_ENUM_USING_ALIAS_STRING using string = MyString; #define MAGIC_ENUM_USING_ALIAS_STRING_VIEW using string_view = MyStringView; -#include -#include +#include +#include using namespace magic_enum; using namespace magic_enum::bitwise_operators; diff --git a/test/test_containers.cpp b/test/test_containers.cpp index b4389e4..33f1cd4 100644 --- a/test/test_containers.cpp +++ b/test/test_containers.cpp @@ -33,8 +33,8 @@ #define CATCH_CONFIG_MAIN #include -#include -#include +#include +#include #include diff --git a/test/test_flags.cpp b/test/test_flags.cpp index 151659c..d7f01ec 100644 --- a/test/test_flags.cpp +++ b/test/test_flags.cpp @@ -32,11 +32,11 @@ #define CATCH_CONFIG_MAIN #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include @@ -91,8 +91,8 @@ struct magic_enum::customize::enum_range { static constexpr bool is_flags = true; }; -#include -#include +#include +#include using namespace magic_enum; using namespace magic_enum::bitwise_operators; @@ -720,7 +720,7 @@ TEST_CASE("constexpr_for") { #if defined(__cpp_lib_format) -#include +#include TEST_CASE("format-base") { REQUIRE(std::format("Test-{:~^11}.", Color::RED | Color::GREEN) == "Test-~RED|GREEN~."); diff --git a/test/test_nonascii.cpp b/test/test_nonascii.cpp index 66e7e53..3f10c00 100644 --- a/test/test_nonascii.cpp +++ b/test/test_nonascii.cpp @@ -27,9 +27,9 @@ #define MAGIC_ENUM_RANGE_MIN -120 #undef MAGIC_ENUM_RANGE_MAX #define MAGIC_ENUM_RANGE_MAX 120 -#include -#include -#include +#include +#include +#include #include #include diff --git a/test/test_wchar_t.cpp b/test/test_wchar_t.cpp index f095098..f372627 100644 --- a/test/test_wchar_t.cpp +++ b/test/test_wchar_t.cpp @@ -25,8 +25,8 @@ #define MAGIC_ENUM_USING_ALIAS_STRING_VIEW using string_view = std::wstring_view; #define MAGIC_ENUM_USING_ALIAS_STRING using string = std::wstring; -#include -#include +#include +#include #include #include diff --git a/test_installed_version.bash b/test_installed_version.bash new file mode 100644 index 0000000..d699693 --- /dev/null +++ b/test_installed_version.bash @@ -0,0 +1,13 @@ +#!/bin/bash +rm -rf ./build +rm -rf ./build2 +rm -rf ./build3 +rm -rf ./install_dir/ +cmake -S . -B ./build -DCMAKE_BUILD_TYPE=Release --log-level=DEBUG -DCMAKE_INSTALL_PREFIX=install_dir +cmake --build ./build -j$(nproc) +cmake --install ./build/ --prefix ./install_dir +CMAKE_PREFIX_PATH="./install_dir" cmake -S. -Bbuild2 -DMAGIC_ENUM_OPT_TEST_INSTALLED_VERSION=1 --log-level=DEBUG +cmake --build build2 --config Debug -j$(nproc) --verbose +CMAKE_PREFIX_PATH="./install_dir" cmake -S. -Bbuild3 -DMAGIC_ENUM_OPT_TEST_INSTALLED_VERSION_PKGCONFIG=1 --log-level=DEBUG +cmake --build build3 --config Debug -j$(nproc) --verbose +