2021-02-09 05:22:38 +08:00
|
|
|
add_library(zm-compile-option-interface INTERFACE)
|
|
|
|
|
|
|
|
# Use -std=c++11 instead of -std=gnu++11
|
2021-02-09 20:10:43 +08:00
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
2021-02-09 05:22:38 +08:00
|
|
|
|
|
|
|
add_library(zm-feature-interface INTERFACE)
|
|
|
|
|
2021-02-09 20:10:43 +08:00
|
|
|
# The cxx_std_* feature flags were only introduced in CMake 3.8
|
|
|
|
# Use to old way to specify the required standard level for older CMake versions.
|
|
|
|
# Remove this once we raise the required CMake version.
|
|
|
|
if(${CMAKE_VERSION} VERSION_LESS 3.8.0)
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
else()
|
|
|
|
target_compile_features(zm-feature-interface
|
|
|
|
INTERFACE
|
|
|
|
cxx_std_11)
|
|
|
|
endif()
|
2021-02-09 05:22:38 +08:00
|
|
|
|
|
|
|
# Interface to set warning levels on targets
|
|
|
|
# It gets populated in the compiler specific script
|
|
|
|
add_library(zm-warning-interface INTERFACE)
|
|
|
|
|
|
|
|
# An interface used by all other interfaces
|
|
|
|
add_library(zm-default-interface INTERFACE)
|
|
|
|
target_link_libraries(zm-default-interface
|
|
|
|
INTERFACE
|
|
|
|
zm-compile-option-interface
|
|
|
|
zm-feature-interface)
|
|
|
|
|
|
|
|
# An interface which provides the flags and definitions
|
|
|
|
# used by the non-dependency targets.
|
|
|
|
add_library(zm-core-interface INTERFACE)
|
|
|
|
target_link_libraries(zm-core-interface
|
|
|
|
INTERFACE
|
|
|
|
zm-default-interface
|
|
|
|
zm-warning-interface)
|