From fe77d5c282e75dc3f35a60a56d23d9fc2cef49e7 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Tue, 10 Jan 2023 12:29:41 +0700 Subject: [PATCH] cleanup some warnings --- develop/CMakeLists.txt | 3 +- develop/cmake/SetupTargets.cmake | 32 ++++++++ develop/manuals/CMakeLists.txt | 74 ++----------------- develop/singles/CMakeLists.txt | 17 ++++- develop/singles/headers/meta.hpp/meta_all.hpp | 12 +-- develop/untests/CMakeLists.txt | 74 ++----------------- develop/untests/meta_states/dtor_tests.cpp | 2 - develop/vendors/CMakeLists.txt | 4 +- .../meta_detail/value_utilities/uarg.hpp | 6 +- .../meta_detail/value_utilities/uinst.hpp | 6 +- 10 files changed, 70 insertions(+), 160 deletions(-) create mode 100644 develop/cmake/SetupTargets.cmake diff --git a/develop/CMakeLists.txt b/develop/CMakeLists.txt index e005234..a2d4144 100644 --- a/develop/CMakeLists.txt +++ b/develop/CMakeLists.txt @@ -9,11 +9,12 @@ list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_SOURCE_DIR}/cmake") include(EnableASan) include(EnableGCov) include(EnableUBSan) +include(SetupTargets) add_subdirectory(manuals) add_subdirectory(singles) -add_subdirectory(vendors) add_subdirectory(untests) +add_subdirectory(vendors) # # install diff --git a/develop/cmake/SetupTargets.cmake b/develop/cmake/SetupTargets.cmake new file mode 100644 index 0000000..f819486 --- /dev/null +++ b/develop/cmake/SetupTargets.cmake @@ -0,0 +1,32 @@ +add_library(${PROJECT_NAME}.setup_targets INTERFACE) +add_library(${PROJECT_NAME}::setup_targets ALIAS ${PROJECT_NAME}.setup_targets) + +target_link_libraries(${PROJECT_NAME}.setup_targets INTERFACE + doctest::doctest_with_main) + +target_compile_options(${PROJECT_NAME}.setup_targets INTERFACE + $<$: + /WX /W4> + $<$: + -Werror -Wall -Wextra -Wpedantic> + $<$,$>: + -Werror -Weverything -Wconversion + -Wno-c++98-compat + -Wno-c++98-compat-pedantic + -Wno-exit-time-destructors + -Wno-global-constructors + -Wno-padded + -Wno-unneeded-member-function + -Wno-weak-vtables + >) + +if(BUILD_WITH_COVERAGE) + target_link_libraries(${PROJECT_NAME}.setup_targets INTERFACE + meta.hpp::enable_gcov) +endif() + +if(BUILD_WITH_SANITIZERS) + target_link_libraries(${PROJECT_NAME}.setup_targets INTERFACE + meta.hpp::enable_asan + meta.hpp::enable_ubsan) +endif() diff --git a/develop/manuals/CMakeLists.txt b/develop/manuals/CMakeLists.txt index b96a455..d6deaa2 100644 --- a/develop/manuals/CMakeLists.txt +++ b/develop/manuals/CMakeLists.txt @@ -4,77 +4,15 @@ file(GLOB_RECURSE MANUALS_SOURCES "*.cpp" "*.hpp") source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${MANUALS_SOURCES}) add_executable(${PROJECT_NAME} ${MANUALS_SOURCES}) -target_link_libraries(${PROJECT_NAME} PRIVATE meta.hpp::meta.hpp) - add_executable(${PROJECT_NAME}.singles ${MANUALS_SOURCES}) -target_link_libraries(${PROJECT_NAME}.singles PRIVATE meta.hpp::singles) -# -# setup defines -# +target_link_libraries(${PROJECT_NAME} PRIVATE + meta.hpp::meta.hpp + meta.hpp::setup_targets) -function(setup_defines_for_target TARGET) - target_compile_definitions(${TARGET} PRIVATE - DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS - DOCTEST_CONFIG_USE_STD_HEADERS) -endfunction() - -setup_defines_for_target(${PROJECT_NAME}) -setup_defines_for_target(${PROJECT_NAME}.singles) - -# -# setup libraries -# - -function(setup_libraries_for_target TARGET) - target_link_libraries(${TARGET} PRIVATE doctest::doctest_with_main) - - if(BUILD_WITH_COVERAGE) - target_link_libraries(${TARGET} PRIVATE meta.hpp::enable_gcov) - endif() - - if(BUILD_WITH_SANITIZERS) - target_link_libraries(${TARGET} PRIVATE meta.hpp::enable_asan meta.hpp::enable_ubsan) - endif() -endfunction() - -setup_libraries_for_target(${PROJECT_NAME}) -setup_libraries_for_target(${PROJECT_NAME}.singles) - -# -# setup warnings -# - -function(setup_warnings_for_target TARGET) - target_compile_options(${TARGET} - PRIVATE - $<$: - /WX /W4> - PRIVATE - $<$: - -Werror -Wall -Wextra -Wpedantic> - PRIVATE - $<$,$>: - -Werror -Weverything -Wconversion - -Wno-c++98-compat - -Wno-c++98-compat-pedantic - -Wno-exit-time-destructors - -Wno-global-constructors - -Wno-padded - -Wno-unknown-warning-option - -Wno-unneeded-internal-declaration - -Wno-unneeded-member-function - -Wno-unused-macros - -Wno-weak-vtables - >) -endfunction() - -setup_warnings_for_target(${PROJECT_NAME}) -setup_warnings_for_target(${PROJECT_NAME}.singles) - -# -# add tests -# +target_link_libraries(${PROJECT_NAME}.singles PRIVATE + meta.hpp::singles + meta.hpp::setup_targets) add_test(${PROJECT_NAME} ${PROJECT_NAME}) add_test(${PROJECT_NAME} ${PROJECT_NAME}.singles) diff --git a/develop/singles/CMakeLists.txt b/develop/singles/CMakeLists.txt index 17620ea..3c064cb 100644 --- a/develop/singles/CMakeLists.txt +++ b/develop/singles/CMakeLists.txt @@ -13,7 +13,8 @@ set(META_HPP_SINGLES_SCRIPT "${META_HPP_ROOT_DIR}/develop/singles/scripts/build_ file(GLOB_RECURSE META_SINGLES_DEPENDS "${META_HPP_ROOT_DIR}/headers/*.hpp") add_custom_command(OUTPUT "${META_HPP_SINGLES_OUTPUT}" - COMMAND "${Python3_EXECUTABLE}" "${META_HPP_SINGLES_SCRIPT}" "${META_HPP_SINGLES_INPUT}" "${META_HPP_SINGLES_OUTPUT}" + COMMAND "${Python3_EXECUTABLE}" "${META_HPP_SINGLES_SCRIPT}" + "${META_HPP_SINGLES_INPUT}" "${META_HPP_SINGLES_OUTPUT}" DEPENDS ${META_SINGLES_DEPENDS} WORKING_DIRECTORY "${META_HPP_ROOT_DIR}") @@ -27,7 +28,15 @@ add_custom_target(${PROJECT_NAME}.generate add_library(${PROJECT_NAME} INTERFACE) add_library(meta.hpp::singles ALIAS ${PROJECT_NAME}) -add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}.generate) -target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_20) -target_include_directories(${PROJECT_NAME} INTERFACE headers) +add_dependencies(${PROJECT_NAME} + ${PROJECT_NAME}.generate) + +target_compile_features(${PROJECT_NAME} INTERFACE + cxx_std_20) + +target_include_directories(${PROJECT_NAME} INTERFACE + $ + $) + +find_package(Threads REQUIRED) target_link_libraries(${PROJECT_NAME} INTERFACE Threads::Threads) diff --git a/develop/singles/headers/meta.hpp/meta_all.hpp b/develop/singles/headers/meta.hpp/meta_all.hpp index f6da04c..5b77de5 100644 --- a/develop/singles/headers/meta.hpp/meta_all.hpp +++ b/develop/singles/headers/meta.hpp/meta_all.hpp @@ -4879,6 +4879,7 @@ namespace meta_hpp::detail }; public: uarg_base() = delete; + ~uarg_base() = default; uarg_base(uarg_base&&) = default; uarg_base(const uarg_base&) = default; @@ -4886,8 +4887,6 @@ namespace meta_hpp::detail uarg_base& operator=(uarg_base&&) = delete; uarg_base& operator=(const uarg_base&) = delete; - virtual ~uarg_base() = default; - template < typename T > uarg_base(type_list) = delete; @@ -4953,6 +4952,7 @@ namespace meta_hpp::detail class uarg final : public uarg_base { public: uarg() = delete; + ~uarg() = default; uarg(uarg&&) = default; uarg(const uarg&) = default; @@ -4960,8 +4960,6 @@ namespace meta_hpp::detail uarg& operator=(uarg&&) = delete; uarg& operator=(const uarg&) = delete; - ~uarg() override = default; - template < typename T, uvalue_kind Tp = std::decay_t > // NOLINTNEXTLINE(*-forwarding-reference-overload) explicit uarg(T&& v) @@ -6002,6 +6000,7 @@ namespace meta_hpp::detail }; public: uinst_base() = delete; + ~uinst_base() = default; uinst_base(uinst_base&&) = default; uinst_base(const uinst_base&) = default; @@ -6009,8 +6008,6 @@ namespace meta_hpp::detail uinst_base& operator=(uinst_base&&) = delete; uinst_base& operator=(const uinst_base&) = delete; - virtual ~uinst_base() = default; - template < typename T > uinst_base(type_list) = delete; @@ -6081,6 +6078,7 @@ namespace meta_hpp::detail class uinst final : public uinst_base { public: uinst() = delete; + ~uinst() = default; uinst(uinst&&) = default; uinst(const uinst&) = default; @@ -6088,8 +6086,6 @@ namespace meta_hpp::detail uinst& operator=(uinst&&) = delete; uinst& operator=(const uinst&) = delete; - ~uinst() override = default; - template < typename T, uvalue_kind Tp = std::decay_t > // NOLINTNEXTLINE(*-forwarding-reference-overload) explicit uinst(T&& v) diff --git a/develop/untests/CMakeLists.txt b/develop/untests/CMakeLists.txt index bf1dbcd..b82191f 100644 --- a/develop/untests/CMakeLists.txt +++ b/develop/untests/CMakeLists.txt @@ -4,77 +4,15 @@ file(GLOB_RECURSE UNTESTS_SOURCES "*.cpp" "*.hpp") source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${UNTESTS_SOURCES}) add_executable(${PROJECT_NAME} ${UNTESTS_SOURCES}) -target_link_libraries(${PROJECT_NAME} PRIVATE meta.hpp::meta.hpp) - add_executable(${PROJECT_NAME}.singles ${UNTESTS_SOURCES}) -target_link_libraries(${PROJECT_NAME}.singles PRIVATE meta.hpp::singles) -# -# setup defines -# +target_link_libraries(${PROJECT_NAME} PRIVATE + meta.hpp::meta.hpp + meta.hpp::setup_targets) -function(setup_defines_for_target TARGET) - target_compile_definitions(${TARGET} PRIVATE - DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS - DOCTEST_CONFIG_USE_STD_HEADERS) -endfunction() - -setup_defines_for_target(${PROJECT_NAME}) -setup_defines_for_target(${PROJECT_NAME}.singles) - -# -# setup libraries -# - -function(setup_libraries_for_target TARGET) - target_link_libraries(${TARGET} PRIVATE doctest::doctest_with_main) - - if(BUILD_WITH_COVERAGE) - target_link_libraries(${TARGET} PRIVATE meta.hpp::enable_gcov) - endif() - - if(BUILD_WITH_SANITIZERS) - target_link_libraries(${TARGET} PRIVATE meta.hpp::enable_asan meta.hpp::enable_ubsan) - endif() -endfunction() - -setup_libraries_for_target(${PROJECT_NAME}) -setup_libraries_for_target(${PROJECT_NAME}.singles) - -# -# setup warnings -# - -function(setup_warnings_for_target TARGET) - target_compile_options(${TARGET} - PRIVATE - $<$: - /WX /W4> - PRIVATE - $<$: - -Werror -Wall -Wextra -Wpedantic> - PRIVATE - $<$,$>: - -Werror -Weverything -Wconversion - -Wno-c++98-compat - -Wno-c++98-compat-pedantic - -Wno-exit-time-destructors - -Wno-global-constructors - -Wno-padded - -Wno-unknown-warning-option - -Wno-unneeded-internal-declaration - -Wno-unneeded-member-function - -Wno-unused-macros - -Wno-weak-vtables - >) -endfunction() - -setup_warnings_for_target(${PROJECT_NAME}) -setup_warnings_for_target(${PROJECT_NAME}.singles) - -# -# add tests -# +target_link_libraries(${PROJECT_NAME}.singles PRIVATE + meta.hpp::singles + meta.hpp::setup_targets) add_test(${PROJECT_NAME} ${PROJECT_NAME}) add_test(${PROJECT_NAME} ${PROJECT_NAME}.singles) diff --git a/develop/untests/meta_states/dtor_tests.cpp b/develop/untests/meta_states/dtor_tests.cpp index 5d06552..f34d79e 100644 --- a/develop/untests/meta_states/dtor_tests.cpp +++ b/develop/untests/meta_states/dtor_tests.cpp @@ -14,8 +14,6 @@ namespace }; class clazz_opened_dtor { - public: - ~clazz_opened_dtor() = default; }; class clazz_virtual_dtor { diff --git a/develop/vendors/CMakeLists.txt b/develop/vendors/CMakeLists.txt index 1913b90..479cb4c 100644 --- a/develop/vendors/CMakeLists.txt +++ b/develop/vendors/CMakeLists.txt @@ -1,5 +1,7 @@ project(meta.hpp.vendors) set(DOCTEST_NO_INSTALL ON CACHE INTERNAL "") +set(DOCTEST_USE_STD_HEADERS ON CACHE INTERNAL "") + add_subdirectory(doctest) -set_target_properties(doctest_with_main PROPERTIES FOLDER meta.hpp.vendors) +set_target_properties(doctest doctest_with_main PROPERTIES FOLDER meta.hpp.vendors) diff --git a/headers/meta.hpp/meta_detail/value_utilities/uarg.hpp b/headers/meta.hpp/meta_detail/value_utilities/uarg.hpp index 78898c5..fbf780a 100644 --- a/headers/meta.hpp/meta_detail/value_utilities/uarg.hpp +++ b/headers/meta.hpp/meta_detail/value_utilities/uarg.hpp @@ -24,6 +24,7 @@ namespace meta_hpp::detail }; public: uarg_base() = delete; + ~uarg_base() = default; uarg_base(uarg_base&&) = default; uarg_base(const uarg_base&) = default; @@ -31,8 +32,6 @@ namespace meta_hpp::detail uarg_base& operator=(uarg_base&&) = delete; uarg_base& operator=(const uarg_base&) = delete; - virtual ~uarg_base() = default; - template < typename T > uarg_base(type_list) = delete; @@ -98,6 +97,7 @@ namespace meta_hpp::detail class uarg final : public uarg_base { public: uarg() = delete; + ~uarg() = default; uarg(uarg&&) = default; uarg(const uarg&) = default; @@ -105,8 +105,6 @@ namespace meta_hpp::detail uarg& operator=(uarg&&) = delete; uarg& operator=(const uarg&) = delete; - ~uarg() override = default; - template < typename T, uvalue_kind Tp = std::decay_t > // NOLINTNEXTLINE(*-forwarding-reference-overload) explicit uarg(T&& v) diff --git a/headers/meta.hpp/meta_detail/value_utilities/uinst.hpp b/headers/meta.hpp/meta_detail/value_utilities/uinst.hpp index 6e22e6a..ee2de48 100644 --- a/headers/meta.hpp/meta_detail/value_utilities/uinst.hpp +++ b/headers/meta.hpp/meta_detail/value_utilities/uinst.hpp @@ -24,6 +24,7 @@ namespace meta_hpp::detail }; public: uinst_base() = delete; + ~uinst_base() = default; uinst_base(uinst_base&&) = default; uinst_base(const uinst_base&) = default; @@ -31,8 +32,6 @@ namespace meta_hpp::detail uinst_base& operator=(uinst_base&&) = delete; uinst_base& operator=(const uinst_base&) = delete; - virtual ~uinst_base() = default; - template < typename T > uinst_base(type_list) = delete; @@ -103,6 +102,7 @@ namespace meta_hpp::detail class uinst final : public uinst_base { public: uinst() = delete; + ~uinst() = default; uinst(uinst&&) = default; uinst(const uinst&) = default; @@ -110,8 +110,6 @@ namespace meta_hpp::detail uinst& operator=(uinst&&) = delete; uinst& operator=(const uinst&) = delete; - ~uinst() override = default; - template < typename T, uvalue_kind Tp = std::decay_t > // NOLINTNEXTLINE(*-forwarding-reference-overload) explicit uinst(T&& v)