add conditions to compiler specific flags

This commit is contained in:
BlackMATov
2023-03-15 00:33:28 +07:00
parent 9ab065b8f3
commit 0688faa825
6 changed files with 35 additions and 23 deletions

View File

@@ -2,20 +2,13 @@
## Backlog
- instance mapper
- type conversions
- dynamic binds listener
- static binds listener
- dynamic type visitor
- type names by [nameof](https://github.com/Neargye/nameof)
- non-linear search of methods/functions/...
- register base types by `META_HPP_ENABLE_POLY_INFO`
- distinguish between function types and function pointer types
- add the library version to sources
- fix all includes to work with the library more flexible
- build and test on CI with additional flags like no-exception and no-rtti
- `try_invoke`/`is_invocable` should return error codes
- conan package config
- test and support shared libraries
## Thoughts
@@ -23,3 +16,14 @@
- should `uvalue` dereference operators return `reference_wrapper`?
- `array_view`/`pointer_view` instead `unmap`/`operator[]`/`operator*`?
- can we add move-only uvalue analog to return move-only values?
## Version 1.0
## Version 2.0
- instance mapper
- dynamic binds listener
- static binds listener
- dynamic type visitor
- conan package config
- type names by [nameof](https://github.com/Neargye/nameof)

View File

@@ -2,4 +2,5 @@ add_library(${PROJECT_NAME}.disable_exceptions INTERFACE)
add_library(${PROJECT_NAME}::disable_exceptions ALIAS ${PROJECT_NAME}.disable_exceptions)
target_compile_options(${PROJECT_NAME}.disable_exceptions INTERFACE
-fno-exceptions)
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
-fno-exceptions>)

View File

@@ -2,4 +2,5 @@ add_library(${PROJECT_NAME}.disable_rtti INTERFACE)
add_library(${PROJECT_NAME}::disable_rtti ALIAS ${PROJECT_NAME}.disable_rtti)
target_compile_options(${PROJECT_NAME}.disable_rtti INTERFACE
-fno-rtti)
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
-fno-rtti>)

View File

@@ -4,13 +4,15 @@ add_library(${PROJECT_NAME}.enable_asan INTERFACE)
add_library(${PROJECT_NAME}::enable_asan ALIAS ${PROJECT_NAME}.enable_asan)
target_compile_options(${PROJECT_NAME}.enable_asan INTERFACE
-fsanitize=address
-fno-omit-frame-pointer
-fsanitize-address-use-after-scope
-fsanitize-address-use-after-return=always)
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
-fsanitize=address
-fno-omit-frame-pointer
-fsanitize-address-use-after-scope
-fsanitize-address-use-after-return=always>)
target_link_options(${PROJECT_NAME}.enable_asan INTERFACE
-fsanitize=address
-fno-omit-frame-pointer
-fsanitize-address-use-after-scope
-fsanitize-address-use-after-return=always)
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
-fsanitize=address
-fno-omit-frame-pointer
-fsanitize-address-use-after-scope
-fsanitize-address-use-after-return=always>)

View File

@@ -4,7 +4,9 @@ add_library(${PROJECT_NAME}.enable_gcov INTERFACE)
add_library(${PROJECT_NAME}::enable_gcov ALIAS ${PROJECT_NAME}.enable_gcov)
target_compile_options(${PROJECT_NAME}.enable_gcov INTERFACE
--coverage)
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
--coverage>)
target_link_options(${PROJECT_NAME}.enable_gcov INTERFACE
--coverage)
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
--coverage>)

View File

@@ -4,9 +4,11 @@ add_library(${PROJECT_NAME}.enable_ubsan INTERFACE)
add_library(${PROJECT_NAME}::enable_ubsan ALIAS ${PROJECT_NAME}.enable_ubsan)
target_compile_options(${PROJECT_NAME}.enable_ubsan INTERFACE
-fsanitize=undefined
-fno-omit-frame-pointer)
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
-fsanitize=undefined
-fno-omit-frame-pointer>)
target_link_options(${PROJECT_NAME}.enable_ubsan INTERFACE
-fsanitize=undefined
-fno-omit-frame-pointer)
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
-fsanitize=undefined
-fno-omit-frame-pointer>)