# Icinga 2
-# Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org)
+# Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
find_package(BISON 2.3.0 REQUIRED)
find_package(FLEX 2.5.31 REQUIRED)
-if("${FLEX_VERSION}" VERSION_LESS "2.5.31")
- message(SEND_ERROR "Your version of flex is too old. You can specify an alternative path using -DFLEX_EXECUTABLE=/path/to/flex")
-endif()
-
bison_target(config_parser config_parser.yy ${CMAKE_CURRENT_BINARY_DIR}/config_parser.cc)
set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/config_parser.cc PROPERTY EXCLUDE_UNITY_BUILD TRUE)
flex_target(config_lexer config_lexer.ll ${CMAKE_CURRENT_BINARY_DIR}/config_lexer.cc)
set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/config_lexer.cc PROPERTY EXCLUDE_UNITY_BUILD TRUE)
-add_flex_bison_dependency(config_lexer config_parser)
+if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/config_parser.cc PROPERTY COMPILE_FLAGS "-Wno-deprecated-register -Wno-parentheses-equality -Wno-unused-function")
+ set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/config_lexer.cc PROPERTY COMPILE_FLAGS "-Wno-deprecated-register -Wno-null-conversion")
+endif()
-mkembedconfig_target(base-type.conf base-type.cpp)
+add_flex_bison_dependency(config_lexer config_parser)
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
set(config_SOURCES
- applyrule.cpp base-type.conf base-type.cpp
- configcompilercontext.cpp configcompiler.cpp configitembuilder.cpp
- configitem.cpp ${FLEX_config_lexer_OUTPUTS} ${BISON_config_parser_OUTPUTS}
- configtype.cpp expression.cpp objectrule.cpp typerule.cpp typerulelist.cpp
+ i2-config.hpp
+ activationcontext.cpp activationcontext.hpp
+ applyrule.cpp applyrule.hpp
+ configcompiler.cpp configcompiler.hpp
+ configcompilercontext.cpp configcompilercontext.hpp
+ configfragment.hpp
+ configitem.cpp configitem.hpp
+ configitembuilder.cpp configitembuilder.hpp
+ expression.cpp expression.hpp
+ objectrule.cpp objectrule.hpp
+ vmops.hpp
+ ${FLEX_config_lexer_OUTPUTS} ${BISON_config_parser_OUTPUTS}
)
if(ICINGA2_UNITY_BUILD)
- mkunity_target(config config_SOURCES)
+ mkunity_target(config config config_SOURCES)
endif()
-add_library(config SHARED ${config_SOURCES})
+add_library(config OBJECT ${config_SOURCES})
-target_link_libraries(config ${Boost_LIBRARIES} base)
+add_dependencies(config base)
set_target_properties (
config PROPERTIES
- INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
- DEFINE_SYMBOL I2_CONFIG_BUILD
FOLDER Lib
)
-
-install(
- TARGETS config
- RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/icinga2
-)