mirror of https://github.com/procxx/kepka.git
95 lines
2.1 KiB
CMake
95 lines
2.1 KiB
CMake
add_subdirectory(external)
|
|
|
|
add_library(with_ranges INTERFACE)
|
|
|
|
if (WIN32)
|
|
target_compile_options(with_ranges
|
|
INTERFACE
|
|
/experimental:preprocessor # need for range-v3 see https://github.com/ericniebler/range-v3#supported-compilers
|
|
/wd5105 # needed for `/experimental:preprocessor`, suppressing C5105 "macro expansion producing 'defined' has undefined behavior"
|
|
)
|
|
endif()
|
|
|
|
add_library(common_no_ranges INTERFACE)
|
|
|
|
target_compile_features(common_no_ranges
|
|
INTERFACE
|
|
cxx_std_17
|
|
)
|
|
|
|
target_compile_definitions(common_no_ranges
|
|
INTERFACE
|
|
UNICODE
|
|
)
|
|
|
|
if (WIN32)
|
|
target_compile_definitions(common_no_ranges
|
|
INTERFACE
|
|
WIN32
|
|
_WINDOWS
|
|
_UNICODE
|
|
UNICODE
|
|
_SCL_SECURE_NO_WARNINGS
|
|
_USING_V110_SDK71_
|
|
NOMINMAX
|
|
)
|
|
target_compile_options(common_no_ranges
|
|
INTERFACE
|
|
/permissive-
|
|
# /Qspectre
|
|
/W1
|
|
/WX
|
|
/MP # Enable multi process build.
|
|
/EHsc # Catch C++ exceptions only, extern C functions never throw a C++ exception.
|
|
/w14834 # [[nodiscard]]
|
|
/w15038 # wrong initialization order
|
|
/w14265 # class has virtual functions, but destructor is not virtual
|
|
/wd4068 # Disable "warning C4068: unknown pragma"
|
|
/wd5105 # needed for `/experimental:preprocessor`, suppressing C5105 "macro expansion producing 'defined' has undefined behavior"
|
|
/Zc:wchar_t- # don't tread wchar_t as builtin type
|
|
)
|
|
target_link_options(common_no_ranges
|
|
INTERFACE
|
|
/NODEFAULTLIB:LIBCMT
|
|
)
|
|
target_link_libraries(common_no_ranges
|
|
INTERFACE
|
|
winmm
|
|
imm32
|
|
ws2_32
|
|
kernel32
|
|
user32
|
|
gdi32
|
|
winspool
|
|
comdlg32
|
|
advapi32
|
|
shell32
|
|
ole32
|
|
oleaut32
|
|
uuid
|
|
odbc32
|
|
odbccp32
|
|
Shlwapi
|
|
Iphlpapi
|
|
Gdiplus
|
|
Strmiids
|
|
Netapi32
|
|
Userenv
|
|
Version
|
|
Dwmapi
|
|
Wtsapi32
|
|
UxTheme
|
|
DbgHelp
|
|
Rstrtmgr
|
|
Crypt32
|
|
)
|
|
else()
|
|
endif()
|
|
|
|
add_library(common INTERFACE)
|
|
|
|
target_link_libraries(common
|
|
INTERFACE
|
|
common_no_ranges
|
|
with_ranges
|
|
) |