cleanup some warnings

This commit is contained in:
BlackMATov
2023-01-10 12:29:41 +07:00
parent f4adc779db
commit fe77d5c282
10 changed files with 70 additions and 160 deletions

View File

@@ -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

View File

@@ -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
$<$<CXX_COMPILER_ID:MSVC>:
/WX /W4>
$<$<CXX_COMPILER_ID:GNU>:
-Werror -Wall -Wextra -Wpedantic>
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
-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()

View File

@@ -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
$<$<CXX_COMPILER_ID:MSVC>:
/WX /W4>
PRIVATE
$<$<CXX_COMPILER_ID:GNU>:
-Werror -Wall -Wextra -Wpedantic>
PRIVATE
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
-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)

View File

@@ -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
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/headers>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
find_package(Threads REQUIRED)
target_link_libraries(${PROJECT_NAME} INTERFACE Threads::Threads)

View File

@@ -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<T>) = 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<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<T>) = 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<T> >
// NOLINTNEXTLINE(*-forwarding-reference-overload)
explicit uinst(T&& v)

View File

@@ -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
$<$<CXX_COMPILER_ID:MSVC>:
/WX /W4>
PRIVATE
$<$<CXX_COMPILER_ID:GNU>:
-Werror -Wall -Wextra -Wpedantic>
PRIVATE
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
-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)

View File

@@ -14,8 +14,6 @@ namespace
};
class clazz_opened_dtor {
public:
~clazz_opened_dtor() = default;
};
class clazz_virtual_dtor {

View File

@@ -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)

View File

@@ -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<T>) = 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<T> >
// NOLINTNEXTLINE(*-forwarding-reference-overload)
explicit uarg(T&& v)

View File

@@ -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<T>) = 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<T> >
// NOLINTNEXTLINE(*-forwarding-reference-overload)
explicit uinst(T&& v)