mirror of https://github.com/Icinga/icinga2.git
Build libraries as static libraries
This commit is contained in:
parent
025abc3357
commit
90496b5456
|
@ -15,7 +15,7 @@
|
|||
# along with this program; if not, write to the Free Software Foundation
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
cmake_minimum_required(VERSION 2.8.8)
|
||||
set(BOOST_MIN_VERSION "1.48.0")
|
||||
|
||||
project(icinga2)
|
||||
|
@ -139,6 +139,13 @@ set(HAVE_EDITLINE "${EDITLINE_FOUND}")
|
|||
find_package(Termcap)
|
||||
set(HAVE_TERMCAP "${TERMCAP_FOUND}")
|
||||
|
||||
find_package(PostgreSQL)
|
||||
|
||||
if(PostgreSQL_FOUND)
|
||||
link_directories(${PostgreSQL_LIBRARY_DIRS})
|
||||
include_directories(${PostgreSQL_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/lib
|
||||
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/lib
|
||||
|
@ -172,12 +179,28 @@ if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
|||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -pthread")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lpthread")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lpthread")
|
||||
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} -lpthread")
|
||||
else()
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -pthread")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -pthread")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
function(add_whole_static_library target library)
|
||||
target_link_libraries(${target} -force_load ${library})
|
||||
endfunction()
|
||||
elseif(MSVC)
|
||||
function(add_whole_static_library target library)
|
||||
target_link_libraries(${target} ${library})
|
||||
set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS "/wholearchive:${library} ")
|
||||
endfunction()
|
||||
else()
|
||||
function(add_whole_static_library target library)
|
||||
target_link_libraries(${target} -Wl,--whole-archive ${library} -Wl,--no-whole-archive)
|
||||
endfunction()
|
||||
endif()
|
||||
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
function(check_cxx_linker_flag flag var)
|
||||
|
@ -238,26 +261,10 @@ if(ICINGA2_LTO_BUILD)
|
|||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -flto")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(CheckCCompilerFlag)
|
||||
|
||||
check_c_compiler_flag(-fvisibility-inlines-hidden HAVE_VISIBILITY_INLINES_HIDDEN)
|
||||
|
||||
if(HAVE_VISIBILITY_INLINES_HIDDEN)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility-inlines-hidden")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
|
||||
endif()
|
||||
|
||||
check_c_compiler_flag(-fvisibility=hidden HAVE_VISIBILITY_HIDDEN)
|
||||
|
||||
if(HAVE_VISIBILITY_HIDDEN)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
|
|
|
@ -21,10 +21,54 @@ else()
|
|||
set(WindowsSources "")
|
||||
endif()
|
||||
|
||||
add_executable(icinga-app icinga.cpp ${WindowsSources})
|
||||
set(icingaloader_SOURCES
|
||||
icinga.cpp
|
||||
${WindowsSources}
|
||||
)
|
||||
|
||||
add_library(icingaloader OBJECT ${icingaloader_SOURCES})
|
||||
add_dependencies(icingaloader base config cli)
|
||||
|
||||
include_directories(${Boost_INCLUDE_DIRS})
|
||||
target_link_libraries(icinga-app ${Boost_LIBRARIES} base config cli)
|
||||
|
||||
add_executable(icinga-app $<TARGET_OBJECTS:icingaloader>)
|
||||
|
||||
add_whole_static_library(icinga-app base)
|
||||
add_whole_static_library(icinga-app config)
|
||||
add_whole_static_library(icinga-app remote)
|
||||
add_whole_static_library(icinga-app cli)
|
||||
|
||||
if(ICINGA2_WITH_CHECKER)
|
||||
add_whole_static_library(icinga-app checker)
|
||||
endif()
|
||||
|
||||
if(ICINGA2_WITH_COMPAT)
|
||||
add_whole_static_library(icinga-app compat)
|
||||
endif()
|
||||
|
||||
if(ICINGA2_WITH_MYSQL)
|
||||
add_whole_static_library(icinga-app db_ido_mysql)
|
||||
endif()
|
||||
|
||||
if(ICINGA2_WITH_PGSQL)
|
||||
add_whole_static_library(icinga-app db_ido_pgsql)
|
||||
endif()
|
||||
|
||||
add_whole_static_library(icinga-app icinga)
|
||||
|
||||
if(ICINGA2_WITH_LIVESTATUS)
|
||||
add_whole_static_library(icinga-app livestatus)
|
||||
endif()
|
||||
|
||||
add_whole_static_library(icinga-app methods)
|
||||
|
||||
if(ICINGA2_WITH_NOTIFICATION)
|
||||
add_whole_static_library(icinga-app notification)
|
||||
endif()
|
||||
|
||||
if(ICINGA2_WITH_PERFDATA)
|
||||
add_whole_static_library(icinga-app perfdata)
|
||||
endif()
|
||||
|
||||
set_target_properties (
|
||||
icinga-app PROPERTIES
|
||||
|
@ -52,6 +96,27 @@ install(
|
|||
RUNTIME DESTINATION ${InstallPath}
|
||||
)
|
||||
|
||||
if(ICINGA2_WITH_HELLO)
|
||||
add_executable(hello-app $<TARGET_OBJECTS:icingaloader>)
|
||||
add_whole_static_library(hello-app base)
|
||||
add_whole_static_library(hello-app config)
|
||||
add_whole_static_library(hello-app remote)
|
||||
add_whole_static_library(hello-app cli)
|
||||
add_whole_static_library(hello-app hello)
|
||||
|
||||
set_target_properties (
|
||||
hello-app PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
FOLDER Bin
|
||||
OUTPUT_NAME hello
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS hello-app
|
||||
RUNTIME DESTINATION ${InstallPath}
|
||||
)
|
||||
endif()
|
||||
|
||||
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/icinga2\")")
|
||||
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/icinga2\")")
|
||||
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_RUNDIR}/icinga2\")")
|
||||
|
|
|
@ -194,8 +194,6 @@ static int Main(void)
|
|||
LogSeverity logLevel = Logger::GetConsoleLogSeverity();
|
||||
Logger::SetConsoleLogSeverity(LogWarning);
|
||||
|
||||
Loader::LoadExtensionLibrary("cli");
|
||||
|
||||
po::options_description visibleDesc("Global options");
|
||||
|
||||
visibleDesc.add_options()
|
||||
|
@ -205,8 +203,6 @@ static int Main(void)
|
|||
("color", "use VT100 color codes even when stdout is not a terminal")
|
||||
#endif /* _WIN32 */
|
||||
("define,D", po::value<std::vector<std::string> >(), "define a constant")
|
||||
("app,a", po::value<std::string>(), "application library name (default: icinga)")
|
||||
("library,l", po::value<std::vector<std::string> >(), "load a library")
|
||||
("include,I", po::value<std::vector<std::string> >(), "add include search directory")
|
||||
("log-level,x", po::value<std::string>(), "specify the log level for the console log.\n"
|
||||
"The valid value is either debug, notice, information (default), warning, or critical")
|
||||
|
@ -359,18 +355,6 @@ static int Main(void)
|
|||
Logger::SetConsoleLogSeverity(logLevel);
|
||||
}
|
||||
|
||||
if (vm.count("library")) {
|
||||
for (const String& libraryName : vm["library"].as<std::vector<std::string> >()) {
|
||||
try {
|
||||
(void) Loader::LoadExtensionLibrary(libraryName);
|
||||
} catch (const std::exception& ex) {
|
||||
Log(LogCritical, "icinga-app")
|
||||
<< "Could not load library \"" << libraryName << "\": " << DiagnosticInformation(ex);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!command || vm.count("help") || vm.count("version")) {
|
||||
String appName;
|
||||
|
||||
|
@ -544,16 +528,6 @@ static int Main(void)
|
|||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
LogSeverity logLevel = Logger::GetConsoleLogSeverity();
|
||||
Logger::SetConsoleLogSeverity(LogWarning);
|
||||
|
||||
if (vm.count("app"))
|
||||
Loader::LoadExtensionLibrary(vm["app"].as<std::string>());
|
||||
else
|
||||
Loader::LoadExtensionLibrary("icinga");
|
||||
|
||||
Logger::SetConsoleLogSeverity(logLevel);
|
||||
|
||||
rc = command->Run(vm, args);
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,9 @@ add_executable(icinga-studio MACOSX_BUNDLE WIN32 icinga-studio.cpp
|
|||
icinga.icns ${WindowsSources})
|
||||
|
||||
include_directories(${Boost_INCLUDE_DIRS})
|
||||
target_link_libraries(icinga-studio ${Boost_LIBRARIES} ${wxWidgets_LIBRARIES} base remote)
|
||||
target_link_libraries(icinga-studio ${Boost_LIBRARIES} ${wxWidgets_LIBRARIES})
|
||||
add_whole_static_library(icinga-studio base)
|
||||
add_whole_static_library(icinga-studio remote)
|
||||
|
||||
if(APPLE)
|
||||
set_source_files_properties(icinga.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||
|
|
|
@ -49,7 +49,7 @@ if(ICINGA2_UNITY_BUILD)
|
|||
mkunity_target(base base base_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(base SHARED ${base_SOURCES})
|
||||
add_library(base STATIC ${base_SOURCES})
|
||||
|
||||
target_link_libraries(base ${CMAKE_DL_LIBS} ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${YAJL_LIBRARIES} mmatch socketpair)
|
||||
|
||||
|
@ -76,26 +76,10 @@ endif()
|
|||
|
||||
set_target_properties (
|
||||
base PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_BASE_BUILD
|
||||
FOLDER Lib
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/cache/icinga2\")")
|
||||
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/icinga2/crash\")")
|
||||
|
||||
install(
|
||||
TARGETS base
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/icinga2
|
||||
)
|
||||
|
||||
if(APPLE)
|
||||
install(
|
||||
TARGETS base
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR}/icinga-studio.app/Contents
|
||||
)
|
||||
endif()
|
||||
|
||||
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}" PARENT_SCOPE)
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Application : public ObjectImpl<Application> {
|
||||
class Application : public ObjectImpl<Application> {
|
||||
public:
|
||||
DECLARE_OBJECT(Application);
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Array : public Object
|
||||
class Array : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(Array);
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup remote
|
||||
*/
|
||||
struct I2_BASE_API Base64
|
||||
struct Base64
|
||||
{
|
||||
static String Decode(const String& data);
|
||||
static String Encode(const String& data);
|
||||
|
|
|
@ -30,7 +30,7 @@ class Value;
|
|||
/**
|
||||
* Boolean class.
|
||||
*/
|
||||
class I2_BASE_API Boolean
|
||||
class Boolean
|
||||
{
|
||||
public:
|
||||
static Object::Ptr GetPrototype(void);
|
||||
|
|
|
@ -37,7 +37,7 @@ class ConfigType;
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API ConfigObject : public ObjectImpl<ConfigObject>
|
||||
class ConfigObject : public ObjectImpl<ConfigObject>
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(ConfigObject);
|
||||
|
|
|
@ -32,7 +32,7 @@ enum HAMode
|
|||
HARunEverywhere
|
||||
};
|
||||
|
||||
class I2_BASE_API NameComposer
|
||||
class NameComposer
|
||||
{
|
||||
public:
|
||||
virtual ~NameComposer(void);
|
||||
|
@ -46,7 +46,7 @@ abstract class ConfigObjectBase
|
|||
{ };
|
||||
|
||||
code {{{
|
||||
class I2_BASE_API ConfigObjectBase : public ObjectImpl<ConfigObjectBase>
|
||||
class ConfigObjectBase : public ObjectImpl<ConfigObjectBase>
|
||||
{
|
||||
public:
|
||||
inline DebugInfo GetDebugInfo(void) const
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace icinga
|
|||
|
||||
class ConfigObject;
|
||||
|
||||
class I2_BASE_API ConfigType
|
||||
class ConfigType
|
||||
{
|
||||
public:
|
||||
virtual ~ConfigType(void);
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API ConfigIdentifier : public Object
|
||||
class ConfigIdentifier : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(ConfigIdentifier);
|
||||
|
@ -51,7 +51,7 @@ private:
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API ConfigWriter
|
||||
class ConfigWriter
|
||||
{
|
||||
public:
|
||||
static void EmitBoolean(std::ostream& fp, bool val);
|
||||
|
|
|
@ -66,26 +66,26 @@ enum ConsoleType
|
|||
#endif /* _WIN32 */
|
||||
};
|
||||
|
||||
class I2_BASE_API ConsoleColorTag
|
||||
class ConsoleColorTag
|
||||
{
|
||||
public:
|
||||
ConsoleColorTag(int color, ConsoleType consoleType = Console_Autodetect);
|
||||
|
||||
friend I2_BASE_API std::ostream& operator<<(std::ostream& fp, const ConsoleColorTag& cct);
|
||||
friend std::ostream& operator<<(std::ostream& fp, const ConsoleColorTag& cct);
|
||||
|
||||
private:
|
||||
int m_Color;
|
||||
int m_ConsoleType;
|
||||
};
|
||||
|
||||
I2_BASE_API std::ostream& operator<<(std::ostream& fp, const ConsoleColorTag& cct);
|
||||
std::ostream& operator<<(std::ostream& fp, const ConsoleColorTag& cct);
|
||||
|
||||
/**
|
||||
* Console utilities.
|
||||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Console
|
||||
class Console
|
||||
{
|
||||
public:
|
||||
static void DetectType(void);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
namespace icinga
|
||||
{
|
||||
|
||||
class I2_BASE_API ContextTrace
|
||||
class ContextTrace
|
||||
{
|
||||
public:
|
||||
ContextTrace(void);
|
||||
|
@ -40,14 +40,14 @@ private:
|
|||
std::list<String> m_Frames;
|
||||
};
|
||||
|
||||
I2_BASE_API std::ostream& operator<<(std::ostream& stream, const ContextTrace& trace);
|
||||
std::ostream& operator<<(std::ostream& stream, const ContextTrace& trace);
|
||||
|
||||
/**
|
||||
* A context frame.
|
||||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API ContextFrame
|
||||
class ContextFrame
|
||||
{
|
||||
public:
|
||||
ContextFrame(const String& message);
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Convert
|
||||
class Convert
|
||||
{
|
||||
public:
|
||||
template<typename T>
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API DateTime : public ObjectImpl<DateTime>
|
||||
class DateTime : public ObjectImpl<DateTime>
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(DateTime);
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup config
|
||||
*/
|
||||
struct I2_BASE_API DebugInfo
|
||||
struct DebugInfo
|
||||
{
|
||||
String Path;
|
||||
|
||||
|
@ -44,11 +44,11 @@ struct I2_BASE_API DebugInfo
|
|||
DebugInfo(void);
|
||||
};
|
||||
|
||||
I2_BASE_API std::ostream& operator<<(std::ostream& out, const DebugInfo& val);
|
||||
std::ostream& operator<<(std::ostream& out, const DebugInfo& val);
|
||||
|
||||
I2_BASE_API DebugInfo DebugInfoRange(const DebugInfo& start, const DebugInfo& end);
|
||||
DebugInfo DebugInfoRange(const DebugInfo& start, const DebugInfo& end);
|
||||
|
||||
I2_BASE_API void ShowCodeLocation(std::ostream& out, const DebugInfo& di, bool verbose = true);
|
||||
void ShowCodeLocation(std::ostream& out, const DebugInfo& di, bool verbose = true);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga {
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API DependencyGraph
|
||||
class DependencyGraph
|
||||
{
|
||||
public:
|
||||
static void AddDependency(Object *parent, Object *child);
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Dictionary : public Object
|
||||
class Dictionary : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(Dictionary);
|
||||
|
|
|
@ -88,7 +88,7 @@ typedef void (*DestCallback)(void *);
|
|||
static boost::thread_specific_ptr<DestCallback> l_LastExceptionDest;
|
||||
# endif /* !__GLIBCXX__ && !_WIN32 */
|
||||
|
||||
extern "C" I2_EXPORT void __cxa_throw(void *obj, TYPEINFO_TYPE *pvtinfo, void (*dest)(void *));
|
||||
extern "C" void __cxa_throw(void *obj, TYPEINFO_TYPE *pvtinfo, void (*dest)(void *));
|
||||
#endif /* HAVE_CXXABI_H */
|
||||
|
||||
void icinga::RethrowUncaughtException(void)
|
||||
|
|
|
@ -42,13 +42,13 @@
|
|||
namespace icinga
|
||||
{
|
||||
|
||||
class I2_BASE_API user_error : virtual public std::exception, virtual public boost::exception
|
||||
class user_error : virtual public std::exception, virtual public boost::exception
|
||||
{ };
|
||||
|
||||
/*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API ScriptError : virtual public user_error
|
||||
class ScriptError : virtual public user_error
|
||||
{
|
||||
public:
|
||||
ScriptError(const String& message);
|
||||
|
@ -73,7 +73,7 @@ private:
|
|||
/*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API ValidationError : virtual public user_error
|
||||
class ValidationError : virtual public user_error
|
||||
{
|
||||
public:
|
||||
ValidationError(const ConfigObject::Ptr& object, const std::vector<String>& attributePath, const String& message);
|
||||
|
@ -96,13 +96,13 @@ private:
|
|||
Dictionary::Ptr m_DebugHint;
|
||||
};
|
||||
|
||||
I2_BASE_API StackTrace *GetLastExceptionStack(void);
|
||||
I2_BASE_API void SetLastExceptionStack(const StackTrace& trace);
|
||||
StackTrace *GetLastExceptionStack(void);
|
||||
void SetLastExceptionStack(const StackTrace& trace);
|
||||
|
||||
I2_BASE_API ContextTrace *GetLastExceptionContext(void);
|
||||
I2_BASE_API void SetLastExceptionContext(const ContextTrace& context);
|
||||
ContextTrace *GetLastExceptionContext(void);
|
||||
void SetLastExceptionContext(const ContextTrace& context);
|
||||
|
||||
I2_BASE_API void RethrowUncaughtException(void);
|
||||
void RethrowUncaughtException(void);
|
||||
|
||||
typedef boost::error_info<StackTrace, StackTrace> StackTraceErrorInfo;
|
||||
|
||||
|
@ -120,10 +120,10 @@ inline std::string to_string(const ContextTraceErrorInfo& e)
|
|||
return msgbuf.str();
|
||||
}
|
||||
|
||||
I2_BASE_API String DiagnosticInformation(const std::exception& ex, bool verbose = true, StackTrace *stack = nullptr, ContextTrace *context = nullptr);
|
||||
I2_BASE_API String DiagnosticInformation(boost::exception_ptr eptr, bool verbose = true);
|
||||
String DiagnosticInformation(const std::exception& ex, bool verbose = true, StackTrace *stack = nullptr, ContextTrace *context = nullptr);
|
||||
String DiagnosticInformation(boost::exception_ptr eptr, bool verbose = true);
|
||||
|
||||
class I2_BASE_API posix_error : virtual public std::exception, virtual public boost::exception {
|
||||
class posix_error : virtual public std::exception, virtual public boost::exception {
|
||||
public:
|
||||
posix_error(void);
|
||||
virtual ~posix_error(void) throw();
|
||||
|
@ -135,7 +135,7 @@ private:
|
|||
};
|
||||
|
||||
#ifdef _WIN32
|
||||
class I2_BASE_API win32_error : virtual public std::exception, virtual public boost::exception { };
|
||||
class win32_error : virtual public std::exception, virtual public boost::exception { };
|
||||
|
||||
struct errinfo_win32_error_;
|
||||
typedef boost::error_info<struct errinfo_win32_error_, int> errinfo_win32_error;
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API FIFO : public Stream
|
||||
class FIFO : public Stream
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(FIFO);
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API FileLogger : public ObjectImpl<FileLogger>
|
||||
class FileLogger : public ObjectImpl<FileLogger>
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(FileLogger);
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Function : public ObjectImpl<Function>
|
||||
class Function : public ObjectImpl<Function>
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(Function);
|
||||
|
|
|
@ -89,14 +89,6 @@
|
|||
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
#endif
|
||||
|
||||
#include "base/visibility.hpp"
|
||||
|
||||
#ifdef I2_BASE_BUILD
|
||||
# define I2_BASE_API I2_EXPORT
|
||||
#else /* I2_BASE_BUILD */
|
||||
# define I2_BASE_API I2_IMPORT
|
||||
#endif /* I2_BASE_BUILD */
|
||||
|
||||
#if defined(__GNUC__)
|
||||
# define likely(x) __builtin_expect(!!(x), 1)
|
||||
# define unlikely(x) __builtin_expect(!!(x), 0)
|
||||
|
|
|
@ -30,16 +30,16 @@ namespace icinga
|
|||
|
||||
#define I2_UNIQUE_NAME(prefix) I2_TOKENPASTE2(prefix, __COUNTER__)
|
||||
|
||||
I2_BASE_API bool InitializeOnceHelper(void (*func)(void), int priority = 0);
|
||||
bool InitializeOnceHelper(void (*func)(void), int priority = 0);
|
||||
|
||||
#define INITIALIZE_ONCE(func) \
|
||||
namespace { namespace I2_UNIQUE_NAME(io) { \
|
||||
I2_EXPORT bool l_InitializeOnce(icinga::InitializeOnceHelper(func)); \
|
||||
bool l_InitializeOnce(icinga::InitializeOnceHelper(func)); \
|
||||
} }
|
||||
|
||||
#define INITIALIZE_ONCE_WITH_PRIORITY(func, priority) \
|
||||
namespace { namespace I2_UNIQUE_NAME(io) { \
|
||||
I2_EXPORT bool l_InitializeOnce(icinga::InitializeOnceHelper(func, priority)); \
|
||||
bool l_InitializeOnce(icinga::InitializeOnceHelper(func, priority)); \
|
||||
} }
|
||||
}
|
||||
|
||||
|
|
|
@ -28,8 +28,8 @@ namespace icinga
|
|||
class String;
|
||||
class Value;
|
||||
|
||||
I2_BASE_API String JsonEncode(const Value& value, bool pretty_print = false);
|
||||
I2_BASE_API Value JsonDecode(const String& data);
|
||||
String JsonEncode(const Value& value, bool pretty_print = false);
|
||||
Value JsonDecode(const String& data);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -18,51 +18,9 @@
|
|||
******************************************************************************/
|
||||
|
||||
#include "base/loader.hpp"
|
||||
#include "base/logger.hpp"
|
||||
#include "base/exception.hpp"
|
||||
#include "base/application.hpp"
|
||||
|
||||
using namespace icinga;
|
||||
|
||||
/**
|
||||
* Loads the specified library.
|
||||
*
|
||||
* @param library The name of the library.
|
||||
*/
|
||||
void Loader::LoadExtensionLibrary(const String& library)
|
||||
{
|
||||
String path;
|
||||
#if defined(_WIN32)
|
||||
path = library + ".dll";
|
||||
#elif defined(__APPLE__)
|
||||
path = "lib" + library + "." + Application::GetAppSpecVersion() + ".dylib";
|
||||
#else /* __APPLE__ */
|
||||
path = "lib" + library + ".so." + Application::GetAppSpecVersion();
|
||||
#endif /* _WIN32 */
|
||||
|
||||
Log(LogNotice, "Loader")
|
||||
<< "Loading library '" << path << "'";
|
||||
|
||||
#ifdef _WIN32
|
||||
HMODULE hModule = LoadLibrary(path.CStr());
|
||||
|
||||
if (!hModule) {
|
||||
BOOST_THROW_EXCEPTION(win32_error()
|
||||
<< boost::errinfo_api_function("LoadLibrary")
|
||||
<< errinfo_win32_error(GetLastError())
|
||||
<< boost::errinfo_file_name(path));
|
||||
}
|
||||
#else /* _WIN32 */
|
||||
void *hModule = dlopen(path.CStr(), RTLD_NOW | RTLD_GLOBAL);
|
||||
|
||||
if (!hModule) {
|
||||
BOOST_THROW_EXCEPTION(std::runtime_error("Could not load library '" + path + "': " + dlerror()));
|
||||
}
|
||||
#endif /* _WIN32 */
|
||||
|
||||
ExecuteDeferredInitializers();
|
||||
}
|
||||
|
||||
boost::thread_specific_ptr<std::priority_queue<DeferredInitializer> >& Loader::GetDeferredInitializers(void)
|
||||
{
|
||||
static boost::thread_specific_ptr<std::priority_queue<DeferredInitializer> > initializers;
|
||||
|
|
|
@ -55,11 +55,9 @@ private:
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Loader
|
||||
class Loader
|
||||
{
|
||||
public:
|
||||
static void LoadExtensionLibrary(const String& library);
|
||||
|
||||
static void AddDeferredInitializer(const std::function<void(void)>& callback, int priority = 0);
|
||||
static void ExecuteDeferredInitializers(void);
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ struct LogEntry {
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Logger : public ObjectImpl<Logger>
|
||||
class Logger : public ObjectImpl<Logger>
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(Logger);
|
||||
|
@ -104,7 +104,7 @@ private:
|
|||
static LogSeverity m_ConsoleLogSeverity;
|
||||
};
|
||||
|
||||
I2_BASE_API void IcingaLog(LogSeverity severity, const String& facility, const String& message);
|
||||
void IcingaLog(LogSeverity severity, const String& facility, const String& message);
|
||||
|
||||
class Log
|
||||
{
|
||||
|
|
|
@ -35,7 +35,7 @@ class String;
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API NetString
|
||||
class NetString
|
||||
{
|
||||
public:
|
||||
static StreamReadStatus ReadStringFromStream(const Stream::Ptr& stream, String *message, StreamReadContext& context, bool may_wait = false);
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API NetworkStream : public Stream
|
||||
class NetworkStream : public Stream
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(NetworkStream);
|
||||
|
|
|
@ -30,7 +30,7 @@ class Value;
|
|||
/**
|
||||
* Number class.
|
||||
*/
|
||||
class I2_BASE_API Number
|
||||
class Number
|
||||
{
|
||||
public:
|
||||
static Object::Ptr GetPrototype(void);
|
||||
|
|
|
@ -41,7 +41,7 @@ class String;
|
|||
struct DebugInfo;
|
||||
class ValidationUtils;
|
||||
|
||||
extern I2_BASE_API Value Empty;
|
||||
extern Value Empty;
|
||||
|
||||
#define DECLARE_PTR_TYPEDEFS(klass) \
|
||||
typedef intrusive_ptr<klass> Ptr
|
||||
|
@ -105,7 +105,7 @@ struct TypeHelper<T, true>
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Object
|
||||
class Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(Object);
|
||||
|
@ -160,10 +160,10 @@ private:
|
|||
friend void intrusive_ptr_release(Object *object);
|
||||
};
|
||||
|
||||
I2_BASE_API Value GetPrototypeField(const Value& context, const String& field, bool not_found_error, const DebugInfo& debugInfo);
|
||||
Value GetPrototypeField(const Value& context, const String& field, bool not_found_error, const DebugInfo& debugInfo);
|
||||
|
||||
I2_BASE_API void TypeAddObject(Object *object);
|
||||
I2_BASE_API void TypeRemoveObject(Object *object);
|
||||
void TypeAddObject(Object *object);
|
||||
void TypeRemoveObject(Object *object);
|
||||
|
||||
inline void intrusive_ptr_add_ref(Object *object)
|
||||
{
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
/**
|
||||
* A scoped lock for Objects.
|
||||
*/
|
||||
struct I2_BASE_API ObjectLock
|
||||
struct ObjectLock
|
||||
{
|
||||
public:
|
||||
ObjectLock(void)
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
namespace icinga
|
||||
{
|
||||
|
||||
class I2_BASE_API ObjectType : public Type
|
||||
class ObjectType : public Type
|
||||
{
|
||||
public:
|
||||
ObjectType(void);
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API PerfdataValue : public ObjectImpl<PerfdataValue>
|
||||
class PerfdataValue : public ObjectImpl<PerfdataValue>
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(PerfdataValue);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
namespace icinga
|
||||
{
|
||||
|
||||
class I2_BASE_API PrimitiveType : public Type
|
||||
class PrimitiveType : public Type
|
||||
{
|
||||
public:
|
||||
PrimitiveType(const String& name, const String& base, const ObjectFactory& factory = ObjectFactory());
|
||||
|
|
|
@ -49,7 +49,7 @@ struct ProcessResult
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Process : public Object
|
||||
class Process : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(Process);
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API RingBuffer : public Object
|
||||
class RingBuffer : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(RingBuffer);
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
namespace icinga
|
||||
{
|
||||
|
||||
struct I2_BASE_API ScriptFrame
|
||||
struct ScriptFrame
|
||||
{
|
||||
Dictionary::Ptr Locals;
|
||||
Value Self;
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API ScriptGlobal
|
||||
class ScriptGlobal
|
||||
{
|
||||
public:
|
||||
static Value Get(const String& name, const Value *defaultValue = nullptr);
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace icinga
|
|||
/**
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API ScriptUtils
|
||||
class ScriptUtils
|
||||
{
|
||||
public:
|
||||
static void StaticInitialize(void);
|
||||
|
|
|
@ -27,9 +27,9 @@
|
|||
namespace icinga
|
||||
{
|
||||
|
||||
I2_BASE_API Value Serialize(const Value& value, int attributeTypes = FAState);
|
||||
I2_BASE_API Value Deserialize(const Value& value, bool safe_mode = false, int attributeTypes = FAState);
|
||||
I2_BASE_API Value Deserialize(const Object::Ptr& object, const Value& value, bool safe_mode = false, int attributeTypes = FAState);
|
||||
Value Serialize(const Value& value, int attributeTypes = FAState);
|
||||
Value Deserialize(const Value& value, bool safe_mode = false, int attributeTypes = FAState);
|
||||
Value Deserialize(const Object::Ptr& object, const Value& value, bool safe_mode = false, int attributeTypes = FAState);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Socket : public Object
|
||||
class Socket : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(Socket);
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API SocketEvents
|
||||
class SocketEvents
|
||||
{
|
||||
public:
|
||||
~SocketEvents(void);
|
||||
|
@ -93,7 +93,7 @@ struct EventDescription
|
|||
Object::Ptr LifesupportReference;
|
||||
};
|
||||
|
||||
class I2_BASE_API SocketEventEngine
|
||||
class SocketEventEngine
|
||||
{
|
||||
public:
|
||||
void Start(void);
|
||||
|
@ -119,7 +119,7 @@ protected:
|
|||
friend class SocketEvents;
|
||||
};
|
||||
|
||||
class I2_BASE_API SocketEventEnginePoll : public SocketEventEngine
|
||||
class SocketEventEnginePoll : public SocketEventEngine
|
||||
{
|
||||
public:
|
||||
virtual void Register(SocketEvents *se, Object *lifesupportObject);
|
||||
|
@ -132,7 +132,7 @@ protected:
|
|||
};
|
||||
|
||||
#ifdef __linux__
|
||||
class I2_BASE_API SocketEventEngineEpoll : public SocketEventEngine
|
||||
class SocketEventEngineEpoll : public SocketEventEngine
|
||||
{
|
||||
public:
|
||||
virtual void Register(SocketEvents *se, Object *lifesupportObject);
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API StackTrace
|
||||
class StackTrace
|
||||
{
|
||||
public:
|
||||
StackTrace(void);
|
||||
|
@ -48,7 +48,7 @@ private:
|
|||
int m_Count;
|
||||
};
|
||||
|
||||
I2_BASE_API std::ostream& operator<<(std::ostream& stream, const StackTrace& trace);
|
||||
std::ostream& operator<<(std::ostream& stream, const StackTrace& trace);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
namespace icinga {
|
||||
|
||||
class I2_BASE_API StdioStream : public Stream
|
||||
class StdioStream : public Stream
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(StdioStream);
|
||||
|
|
|
@ -36,7 +36,7 @@ enum ConnectionRole
|
|||
RoleServer
|
||||
};
|
||||
|
||||
struct I2_BASE_API StreamReadContext
|
||||
struct StreamReadContext
|
||||
{
|
||||
StreamReadContext(void)
|
||||
: Buffer(nullptr), Size(0), MustRead(true), Eof(false)
|
||||
|
@ -68,7 +68,7 @@ enum StreamReadStatus
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Stream : public Object
|
||||
class Stream : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(Stream);
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API StreamLogger : public ObjectImpl<StreamLogger>
|
||||
class StreamLogger : public ObjectImpl<StreamLogger>
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(StreamLogger);
|
||||
|
|
|
@ -41,7 +41,7 @@ class Value;
|
|||
* Rationale for having this: The std::string class has an ambiguous assignment
|
||||
* operator when used in conjunction with the Value class.
|
||||
*/
|
||||
class I2_BASE_API String
|
||||
class String
|
||||
{
|
||||
public:
|
||||
typedef std::string::iterator Iterator;
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API SyslogLogger : public ObjectImpl<SyslogLogger>
|
||||
class SyslogLogger : public ObjectImpl<SyslogLogger>
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(SyslogLogger);
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API TcpSocket : public Socket
|
||||
class TcpSocket : public Socket
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(TcpSocket);
|
||||
|
|
|
@ -43,7 +43,7 @@ enum SchedulerPolicy
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API ThreadPool
|
||||
class ThreadPool
|
||||
{
|
||||
public:
|
||||
typedef std::function<void ()> WorkFunction;
|
||||
|
|
|
@ -33,7 +33,7 @@ class TimerHolder;
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Timer : public Object
|
||||
class Timer : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(Timer);
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
|
||||
using namespace icinga;
|
||||
|
||||
int I2_EXPORT TlsStream::m_SSLIndex;
|
||||
bool I2_EXPORT TlsStream::m_SSLIndexInitialized = false;
|
||||
int TlsStream::m_SSLIndex;
|
||||
bool TlsStream::m_SSLIndexInitialized = false;
|
||||
|
||||
/**
|
||||
* Constructor for the TlsStream class.
|
||||
|
|
|
@ -43,7 +43,7 @@ enum TlsAction
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API TlsStream : public Stream, private SocketEvents
|
||||
class TlsStream : public Stream, private SocketEvents
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(TlsStream);
|
||||
|
|
|
@ -36,27 +36,27 @@
|
|||
namespace icinga
|
||||
{
|
||||
|
||||
void I2_BASE_API InitializeOpenSSL(void);
|
||||
std::shared_ptr<SSL_CTX> I2_BASE_API MakeSSLContext(const String& pubkey = String(), const String& privkey = String(), const String& cakey = String());
|
||||
void I2_BASE_API AddCRLToSSLContext(const std::shared_ptr<SSL_CTX>& context, const String& crlPath);
|
||||
void I2_BASE_API SetCipherListToSSLContext(const std::shared_ptr<SSL_CTX>& context, const String& cipherList);
|
||||
void I2_BASE_API SetTlsProtocolminToSSLContext(const std::shared_ptr<SSL_CTX>& context, const String& tlsProtocolmin);
|
||||
String I2_BASE_API GetCertificateCN(const std::shared_ptr<X509>& certificate);
|
||||
std::shared_ptr<X509> I2_BASE_API GetX509Certificate(const String& pemfile);
|
||||
int I2_BASE_API MakeX509CSR(const String& cn, const String& keyfile, const String& csrfile = String(), const String& certfile = String(), bool ca = false);
|
||||
std::shared_ptr<X509> I2_BASE_API CreateCert(EVP_PKEY *pubkey, X509_NAME *subject, X509_NAME *issuer, EVP_PKEY *cakey, bool ca);
|
||||
String I2_BASE_API GetIcingaCADir(void);
|
||||
String I2_BASE_API CertificateToString(const std::shared_ptr<X509>& cert);
|
||||
std::shared_ptr<X509> I2_BASE_API StringToCertificate(const String& cert);
|
||||
std::shared_ptr<X509> I2_BASE_API CreateCertIcingaCA(EVP_PKEY *pubkey, X509_NAME *subject);
|
||||
std::shared_ptr<X509> I2_BASE_API CreateCertIcingaCA(const std::shared_ptr<X509>& cert);
|
||||
String I2_BASE_API PBKDF2_SHA1(const String& password, const String& salt, int iterations);
|
||||
String I2_BASE_API SHA1(const String& s, bool binary = false);
|
||||
String I2_BASE_API SHA256(const String& s);
|
||||
String I2_BASE_API RandomString(int length);
|
||||
bool I2_BASE_API VerifyCertificate(const std::shared_ptr<X509>& caCertificate, const std::shared_ptr<X509>& certificate);
|
||||
void InitializeOpenSSL(void);
|
||||
std::shared_ptr<SSL_CTX> MakeSSLContext(const String& pubkey = String(), const String& privkey = String(), const String& cakey = String());
|
||||
void AddCRLToSSLContext(const std::shared_ptr<SSL_CTX>& context, const String& crlPath);
|
||||
void SetCipherListToSSLContext(const std::shared_ptr<SSL_CTX>& context, const String& cipherList);
|
||||
void SetTlsProtocolminToSSLContext(const std::shared_ptr<SSL_CTX>& context, const String& tlsProtocolmin);
|
||||
String GetCertificateCN(const std::shared_ptr<X509>& certificate);
|
||||
std::shared_ptr<X509> GetX509Certificate(const String& pemfile);
|
||||
int MakeX509CSR(const String& cn, const String& keyfile, const String& csrfile = String(), const String& certfile = String(), bool ca = false);
|
||||
std::shared_ptr<X509> CreateCert(EVP_PKEY *pubkey, X509_NAME *subject, X509_NAME *issuer, EVP_PKEY *cakey, bool ca);
|
||||
String GetIcingaCADir(void);
|
||||
String CertificateToString(const std::shared_ptr<X509>& cert);
|
||||
std::shared_ptr<X509> StringToCertificate(const String& cert);
|
||||
std::shared_ptr<X509> CreateCertIcingaCA(EVP_PKEY *pubkey, X509_NAME *subject);
|
||||
std::shared_ptr<X509> CreateCertIcingaCA(const std::shared_ptr<X509>& cert);
|
||||
String PBKDF2_SHA1(const String& password, const String& salt, int iterations);
|
||||
String SHA1(const String& s, bool binary = false);
|
||||
String SHA256(const String& s);
|
||||
String RandomString(int length);
|
||||
bool VerifyCertificate(const std::shared_ptr<X509>& caCertificate, const std::shared_ptr<X509>& certificate);
|
||||
|
||||
class I2_BASE_API openssl_error : virtual public std::exception, virtual public boost::exception { };
|
||||
class openssl_error : virtual public std::exception, virtual public boost::exception { };
|
||||
|
||||
struct errinfo_openssl_error_;
|
||||
typedef boost::error_info<struct errinfo_openssl_error_, unsigned long> errinfo_openssl_error;
|
||||
|
|
|
@ -70,7 +70,7 @@ public:
|
|||
virtual bool ValidateName(const String& type, const String& name) const = 0;
|
||||
};
|
||||
|
||||
class I2_BASE_API Type : public Object
|
||||
class Type : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(Type);
|
||||
|
@ -114,7 +114,7 @@ private:
|
|||
Object::Ptr m_Prototype;
|
||||
};
|
||||
|
||||
class I2_BASE_API TypeType : public Type
|
||||
class TypeType : public Type
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(Type);
|
||||
|
@ -133,7 +133,7 @@ protected:
|
|||
};
|
||||
|
||||
template<typename T>
|
||||
class I2_BASE_API TypeImpl
|
||||
class TypeImpl
|
||||
{
|
||||
};
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
namespace icinga
|
||||
{
|
||||
|
||||
class I2_BASE_API UnixSocket : public Socket
|
||||
class UnixSocket : public Socket
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(UnixSocket);
|
||||
|
|
|
@ -56,7 +56,7 @@ enum GlobType
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Utility
|
||||
class Utility
|
||||
{
|
||||
public:
|
||||
static String DemangleSymbolName(const String& sym);
|
||||
|
|
|
@ -49,7 +49,7 @@ enum ValueType
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API Value
|
||||
class Value
|
||||
{
|
||||
public:
|
||||
Value(void)
|
||||
|
@ -293,100 +293,100 @@ private:
|
|||
boost::variant<boost::blank, double, bool, String, Object::Ptr> m_Value;
|
||||
};
|
||||
|
||||
extern I2_BASE_API Value Empty;
|
||||
extern Value Empty;
|
||||
|
||||
I2_BASE_API Value operator+(const Value& lhs, const char *rhs);
|
||||
I2_BASE_API Value operator+(const char *lhs, const Value& rhs);
|
||||
Value operator+(const Value& lhs, const char *rhs);
|
||||
Value operator+(const char *lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator+(const Value& lhs, const String& rhs);
|
||||
I2_BASE_API Value operator+(const String& lhs, const Value& rhs);
|
||||
Value operator+(const Value& lhs, const String& rhs);
|
||||
Value operator+(const String& lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator+(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator+(const Value& lhs, double rhs);
|
||||
I2_BASE_API Value operator+(double lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator+(const Value& lhs, int rhs);
|
||||
I2_BASE_API Value operator+(int lhs, const Value& rhs);
|
||||
Value operator+(const Value& lhs, const Value& rhs);
|
||||
Value operator+(const Value& lhs, double rhs);
|
||||
Value operator+(double lhs, const Value& rhs);
|
||||
Value operator+(const Value& lhs, int rhs);
|
||||
Value operator+(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator-(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator-(const Value& lhs, double rhs);
|
||||
I2_BASE_API Value operator-(double lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator-(const Value& lhs, int rhs);
|
||||
I2_BASE_API Value operator-(int lhs, const Value& rhs);
|
||||
Value operator-(const Value& lhs, const Value& rhs);
|
||||
Value operator-(const Value& lhs, double rhs);
|
||||
Value operator-(double lhs, const Value& rhs);
|
||||
Value operator-(const Value& lhs, int rhs);
|
||||
Value operator-(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator*(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator*(const Value& lhs, double rhs);
|
||||
I2_BASE_API Value operator*(double lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator*(const Value& lhs, int rhs);
|
||||
I2_BASE_API Value operator*(int lhs, const Value& rhs);
|
||||
Value operator*(const Value& lhs, const Value& rhs);
|
||||
Value operator*(const Value& lhs, double rhs);
|
||||
Value operator*(double lhs, const Value& rhs);
|
||||
Value operator*(const Value& lhs, int rhs);
|
||||
Value operator*(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator/(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator/(const Value& lhs, double rhs);
|
||||
I2_BASE_API Value operator/(double lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator/(const Value& lhs, int rhs);
|
||||
I2_BASE_API Value operator/(int lhs, const Value& rhs);
|
||||
Value operator/(const Value& lhs, const Value& rhs);
|
||||
Value operator/(const Value& lhs, double rhs);
|
||||
Value operator/(double lhs, const Value& rhs);
|
||||
Value operator/(const Value& lhs, int rhs);
|
||||
Value operator/(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator%(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator%(const Value& lhs, double rhs);
|
||||
I2_BASE_API Value operator%(double lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator%(const Value& lhs, int rhs);
|
||||
I2_BASE_API Value operator%(int lhs, const Value& rhs);
|
||||
Value operator%(const Value& lhs, const Value& rhs);
|
||||
Value operator%(const Value& lhs, double rhs);
|
||||
Value operator%(double lhs, const Value& rhs);
|
||||
Value operator%(const Value& lhs, int rhs);
|
||||
Value operator%(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator^(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator^(const Value& lhs, double rhs);
|
||||
I2_BASE_API Value operator^(double lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator^(const Value& lhs, int rhs);
|
||||
I2_BASE_API Value operator^(int lhs, const Value& rhs);
|
||||
Value operator^(const Value& lhs, const Value& rhs);
|
||||
Value operator^(const Value& lhs, double rhs);
|
||||
Value operator^(double lhs, const Value& rhs);
|
||||
Value operator^(const Value& lhs, int rhs);
|
||||
Value operator^(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator&(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator&(const Value& lhs, double rhs);
|
||||
I2_BASE_API Value operator&(double lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator&(const Value& lhs, int rhs);
|
||||
I2_BASE_API Value operator&(int lhs, const Value& rhs);
|
||||
Value operator&(const Value& lhs, const Value& rhs);
|
||||
Value operator&(const Value& lhs, double rhs);
|
||||
Value operator&(double lhs, const Value& rhs);
|
||||
Value operator&(const Value& lhs, int rhs);
|
||||
Value operator&(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator|(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator|(const Value& lhs, double rhs);
|
||||
I2_BASE_API Value operator|(double lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator|(const Value& lhs, int rhs);
|
||||
I2_BASE_API Value operator|(int lhs, const Value& rhs);
|
||||
Value operator|(const Value& lhs, const Value& rhs);
|
||||
Value operator|(const Value& lhs, double rhs);
|
||||
Value operator|(double lhs, const Value& rhs);
|
||||
Value operator|(const Value& lhs, int rhs);
|
||||
Value operator|(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator<<(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator<<(const Value& lhs, double rhs);
|
||||
I2_BASE_API Value operator<<(double lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator<<(const Value& lhs, int rhs);
|
||||
I2_BASE_API Value operator<<(int lhs, const Value& rhs);
|
||||
Value operator<<(const Value& lhs, const Value& rhs);
|
||||
Value operator<<(const Value& lhs, double rhs);
|
||||
Value operator<<(double lhs, const Value& rhs);
|
||||
Value operator<<(const Value& lhs, int rhs);
|
||||
Value operator<<(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API Value operator>>(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator>>(const Value& lhs, double rhs);
|
||||
I2_BASE_API Value operator>>(double lhs, const Value& rhs);
|
||||
I2_BASE_API Value operator>>(const Value& lhs, int rhs);
|
||||
I2_BASE_API Value operator>>(int lhs, const Value& rhs);
|
||||
Value operator>>(const Value& lhs, const Value& rhs);
|
||||
Value operator>>(const Value& lhs, double rhs);
|
||||
Value operator>>(double lhs, const Value& rhs);
|
||||
Value operator>>(const Value& lhs, int rhs);
|
||||
Value operator>>(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API bool operator<(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API bool operator<(const Value& lhs, double rhs);
|
||||
I2_BASE_API bool operator<(double lhs, const Value& rhs);
|
||||
I2_BASE_API bool operator<(const Value& lhs, int rhs);
|
||||
I2_BASE_API bool operator<(int lhs, const Value& rhs);
|
||||
bool operator<(const Value& lhs, const Value& rhs);
|
||||
bool operator<(const Value& lhs, double rhs);
|
||||
bool operator<(double lhs, const Value& rhs);
|
||||
bool operator<(const Value& lhs, int rhs);
|
||||
bool operator<(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API bool operator>(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API bool operator>(const Value& lhs, double rhs);
|
||||
I2_BASE_API bool operator>(double lhs, const Value& rhs);
|
||||
I2_BASE_API bool operator>(const Value& lhs, int rhs);
|
||||
I2_BASE_API bool operator>(int lhs, const Value& rhs);
|
||||
bool operator>(const Value& lhs, const Value& rhs);
|
||||
bool operator>(const Value& lhs, double rhs);
|
||||
bool operator>(double lhs, const Value& rhs);
|
||||
bool operator>(const Value& lhs, int rhs);
|
||||
bool operator>(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API bool operator<=(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API bool operator<=(const Value& lhs, double rhs);
|
||||
I2_BASE_API bool operator<=(double lhs, const Value& rhs);
|
||||
I2_BASE_API bool operator<=(const Value& lhs, int rhs);
|
||||
I2_BASE_API bool operator<=(int lhs, const Value& rhs);
|
||||
bool operator<=(const Value& lhs, const Value& rhs);
|
||||
bool operator<=(const Value& lhs, double rhs);
|
||||
bool operator<=(double lhs, const Value& rhs);
|
||||
bool operator<=(const Value& lhs, int rhs);
|
||||
bool operator<=(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API bool operator>=(const Value& lhs, const Value& rhs);
|
||||
I2_BASE_API bool operator>=(const Value& lhs, double rhs);
|
||||
I2_BASE_API bool operator>=(double lhs, const Value& rhs);
|
||||
I2_BASE_API bool operator>=(const Value& lhs, int rhs);
|
||||
I2_BASE_API bool operator>=(int lhs, const Value& rhs);
|
||||
bool operator>=(const Value& lhs, const Value& rhs);
|
||||
bool operator>=(const Value& lhs, double rhs);
|
||||
bool operator>=(double lhs, const Value& rhs);
|
||||
bool operator>=(const Value& lhs, int rhs);
|
||||
bool operator>=(int lhs, const Value& rhs);
|
||||
|
||||
I2_BASE_API std::ostream& operator<<(std::ostream& stream, const Value& value);
|
||||
I2_BASE_API std::istream& operator>>(std::istream& stream, Value& value);
|
||||
std::ostream& operator<<(std::ostream& stream, const Value& value);
|
||||
std::istream& operator>>(std::istream& stream, Value& value);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
/******************************************************************************
|
||||
* Icinga 2 *
|
||||
* 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 *
|
||||
* as published by the Free Software Foundation; either version 2 *
|
||||
* of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the Free Software Foundation *
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef VISIBILITY_H
|
||||
#define VISIBILITY_H
|
||||
|
||||
#ifndef _WIN32
|
||||
# define I2_EXPORT __attribute__ ((visibility("default")))
|
||||
# define I2_IMPORT __attribute__ ((visibility("default")))
|
||||
#else /* _WIN32 */
|
||||
# define I2_EXPORT __declspec(dllexport)
|
||||
# define I2_IMPORT __declspec(dllimport)
|
||||
# define I2_HIDDEN
|
||||
#endif /* _WIN32 */
|
||||
|
||||
#endif /* VISIBILITY_H */
|
|
@ -76,7 +76,7 @@ inline bool operator<(const Task& a, const Task& b)
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_BASE_API WorkQueue
|
||||
class WorkQueue
|
||||
{
|
||||
public:
|
||||
typedef std::function<void (boost::exception_ptr)> ExceptionCallback;
|
||||
|
|
|
@ -25,16 +25,13 @@ if(ICINGA2_UNITY_BUILD)
|
|||
mkunity_target(checker checker checker_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(checker SHARED ${checker_SOURCES})
|
||||
add_library(checker STATIC ${checker_SOURCES})
|
||||
|
||||
target_link_libraries(checker ${Boost_LIBRARIES} base config icinga remote)
|
||||
|
||||
set_target_properties (
|
||||
checker PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_CHECKER_BUILD
|
||||
FOLDER Components
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install_if_not_exists(
|
||||
|
@ -49,10 +46,4 @@ else()
|
|||
install_if_not_exists(${PROJECT_SOURCE_DIR}/etc/icinga2/features-enabled/checker.conf ${CMAKE_INSTALL_SYSCONFDIR}/icinga2/features-enabled)
|
||||
endif()
|
||||
|
||||
install(
|
||||
TARGETS checker
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/icinga2
|
||||
)
|
||||
|
||||
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}" PARENT_SCOPE)
|
||||
|
|
|
@ -33,7 +33,7 @@ if(ICINGA2_UNITY_BUILD)
|
|||
mkunity_target(cli cli cli_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(cli SHARED ${cli_SOURCES})
|
||||
add_library(cli STATIC ${cli_SOURCES})
|
||||
|
||||
target_link_libraries(cli ${Boost_LIBRARIES} base config remote)
|
||||
|
||||
|
@ -49,14 +49,5 @@ endif()
|
|||
|
||||
set_target_properties (
|
||||
cli PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_CLI_BUILD
|
||||
FOLDER Lib
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS cli
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/icinga2
|
||||
)
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace icinga
|
|||
/**
|
||||
* @ingroup cli
|
||||
*/
|
||||
class I2_CLI_API ApiSetupUtility
|
||||
class ApiSetupUtility
|
||||
{
|
||||
public:
|
||||
static bool SetupMaster(const String& cn, bool prompt_restart = false);
|
||||
|
|
|
@ -32,8 +32,8 @@
|
|||
namespace icinga
|
||||
{
|
||||
|
||||
std::vector<String> I2_CLI_API GetBashCompletionSuggestions(const String& type, const String& word);
|
||||
std::vector<String> I2_CLI_API GetFieldCompletionSuggestions(const Type::Ptr& type, const String& word);
|
||||
std::vector<String> GetBashCompletionSuggestions(const String& type, const String& word);
|
||||
std::vector<String> GetFieldCompletionSuggestions(const Type::Ptr& type, const String& word);
|
||||
|
||||
enum ImpersonationLevel
|
||||
{
|
||||
|
@ -47,7 +47,7 @@ enum ImpersonationLevel
|
|||
*
|
||||
* @ingroup base
|
||||
*/
|
||||
class I2_CLI_API CLICommand : public Object
|
||||
class CLICommand : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(CLICommand);
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
/**
|
||||
* @ingroup cli
|
||||
*/
|
||||
class I2_CLI_API DaemonUtility
|
||||
class DaemonUtility
|
||||
{
|
||||
public:
|
||||
static bool ValidateConfigFiles(const std::vector<std::string>& configs, const String& objectsFile = String());
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace icinga
|
|||
/**
|
||||
* @ingroup cli
|
||||
*/
|
||||
class I2_CLI_API FeatureUtility
|
||||
class FeatureUtility
|
||||
{
|
||||
public:
|
||||
static String GetFeaturesAvailablePath(void);
|
||||
|
|
|
@ -28,10 +28,4 @@
|
|||
|
||||
#include "base/i2-base.hpp"
|
||||
|
||||
#ifdef I2_CLI_BUILD
|
||||
# define I2_CLI_API I2_EXPORT
|
||||
#else /* I2_REMOTE_BUILD */
|
||||
# define I2_CLI_API I2_IMPORT
|
||||
#endif /* I2_REMOTE_BUILD */
|
||||
|
||||
#endif /* I2CLI_H */
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace icinga
|
|||
/**
|
||||
* @ingroup cli
|
||||
*/
|
||||
class I2_CLI_API NodeUtility
|
||||
class NodeUtility
|
||||
{
|
||||
public:
|
||||
static String GetConstantsConfPath(void);
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace icinga
|
|||
/**
|
||||
* @ingroup cli
|
||||
*/
|
||||
class I2_CLI_API ObjectListUtility
|
||||
class ObjectListUtility
|
||||
{
|
||||
public:
|
||||
static bool PrintObject(std::ostream& fp, bool& first, const String& message, std::map<String, int>& type_count, const String& name_filter, const String& type_filter);
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace icinga
|
|||
/**
|
||||
* @ingroup cli
|
||||
*/
|
||||
class I2_CLI_API VariableUtility
|
||||
class VariableUtility
|
||||
{
|
||||
public:
|
||||
static Value GetVariable(const String& name);
|
||||
|
|
|
@ -30,16 +30,13 @@ if(ICINGA2_UNITY_BUILD)
|
|||
mkunity_target(compat compat compat_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(compat SHARED ${compat_SOURCES})
|
||||
add_library(compat STATIC ${compat_SOURCES})
|
||||
|
||||
target_link_libraries(compat ${Boost_LIBRARIES} base config icinga)
|
||||
|
||||
set_target_properties (
|
||||
compat PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_COMPAT_BUILD
|
||||
FOLDER Components
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install_if_not_exists(
|
||||
|
@ -57,8 +54,6 @@ install_if_not_exists(
|
|||
${CMAKE_INSTALL_SYSCONFDIR}/icinga2/features-available
|
||||
)
|
||||
|
||||
install(TARGETS compat RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/icinga2)
|
||||
|
||||
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/icinga2/compat/archives\")")
|
||||
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/spool/icinga2\")")
|
||||
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_RUNDIR}/icinga2/cmd\")")
|
||||
|
|
|
@ -44,27 +44,11 @@ if(ICINGA2_UNITY_BUILD)
|
|||
mkunity_target(config config config_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(config SHARED ${config_SOURCES})
|
||||
add_library(config STATIC ${config_SOURCES})
|
||||
|
||||
target_link_libraries(config ${Boost_LIBRARIES} base)
|
||||
target_link_libraries(config ${Boost_LIBRARIES} base)
|
||||
|
||||
set_target_properties (
|
||||
config PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_CONFIG_BUILD
|
||||
FOLDER Lib
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS config
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/icinga2
|
||||
)
|
||||
|
||||
if(APPLE)
|
||||
install(
|
||||
TARGETS config
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR}/icinga-studio.app/Contents
|
||||
)
|
||||
endif()
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
namespace icinga
|
||||
{
|
||||
|
||||
class I2_CONFIG_API ActivationContext : public Object
|
||||
class ActivationContext : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(ActivationContext);
|
||||
|
@ -46,7 +46,7 @@ private:
|
|||
friend class ActivationScope;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ActivationScope
|
||||
class ActivationScope
|
||||
{
|
||||
public:
|
||||
ActivationScope(const ActivationContext::Ptr& context = nullptr);
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace icinga
|
|||
/**
|
||||
* @ingroup config
|
||||
*/
|
||||
class I2_CONFIG_API ApplyRule
|
||||
class ApplyRule
|
||||
{
|
||||
public:
|
||||
typedef std::map<String, std::vector<String> > TypeMap;
|
||||
|
|
|
@ -83,7 +83,7 @@ struct ZoneFragment
|
|||
*
|
||||
* @ingroup config
|
||||
*/
|
||||
class I2_CONFIG_API ConfigCompiler
|
||||
class ConfigCompiler
|
||||
{
|
||||
public:
|
||||
explicit ConfigCompiler(const String& path, std::istream *input,
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
/*
|
||||
* @ingroup config
|
||||
*/
|
||||
class I2_CONFIG_API ConfigCompilerContext
|
||||
class ConfigCompilerContext
|
||||
{
|
||||
public:
|
||||
ConfigCompilerContext(void);
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup config
|
||||
*/
|
||||
class I2_CONFIG_API ConfigItem : public Object {
|
||||
class ConfigItem : public Object {
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(ConfigItem);
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup config
|
||||
*/
|
||||
class I2_CONFIG_API ConfigItemBuilder : public Object
|
||||
class ConfigItemBuilder : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(ConfigItemBuilder);
|
||||
|
|
|
@ -840,7 +840,9 @@ ExpressionResult LibraryExpression::DoEvaluate(ScriptFrame& frame, DebugHint *dh
|
|||
ExpressionResult libres = m_Operand->Evaluate(frame, dhint);
|
||||
CHECK_RESULT(libres);
|
||||
|
||||
Loader::LoadExtensionLibrary(libres.GetValue());
|
||||
Log(LogNotice, "config")
|
||||
<< "Ignoring explicit load request for library \"" << libres << "\".";
|
||||
//Loader::LoadExtensionLibrary(libres.GetValue());
|
||||
|
||||
return Empty;
|
||||
}
|
||||
|
|
|
@ -195,7 +195,7 @@ private:
|
|||
/**
|
||||
* @ingroup config
|
||||
*/
|
||||
class I2_CONFIG_API Expression
|
||||
class Expression
|
||||
{
|
||||
public:
|
||||
Expression(void) = default;
|
||||
|
@ -215,9 +215,9 @@ public:
|
|||
static void ScriptBreakpoint(ScriptFrame& frame, ScriptError *ex, const DebugInfo& di);
|
||||
};
|
||||
|
||||
I2_CONFIG_API std::unique_ptr<Expression> MakeIndexer(ScopeSpecifier scopeSpec, const String& index);
|
||||
std::unique_ptr<Expression> MakeIndexer(ScopeSpecifier scopeSpec, const String& index);
|
||||
|
||||
class I2_CONFIG_API OwnedExpression : public Expression
|
||||
class OwnedExpression : public Expression
|
||||
{
|
||||
public:
|
||||
OwnedExpression(const std::shared_ptr<Expression>& expression)
|
||||
|
@ -239,7 +239,7 @@ private:
|
|||
std::shared_ptr<Expression> m_Expression;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API LiteralExpression : public Expression
|
||||
class LiteralExpression : public Expression
|
||||
{
|
||||
public:
|
||||
LiteralExpression(const Value& value = Value());
|
||||
|
@ -266,7 +266,7 @@ inline std::unique_ptr<LiteralExpression> MakeLiteral(const Value& literal = Val
|
|||
return std::unique_ptr<LiteralExpression>(MakeLiteralRaw(literal));
|
||||
}
|
||||
|
||||
class I2_CONFIG_API DebuggableExpression : public Expression
|
||||
class DebuggableExpression : public Expression
|
||||
{
|
||||
public:
|
||||
DebuggableExpression(const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -279,7 +279,7 @@ protected:
|
|||
DebugInfo m_DebugInfo;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API UnaryExpression : public DebuggableExpression
|
||||
class UnaryExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
UnaryExpression(std::unique_ptr<Expression> operand, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -290,7 +290,7 @@ protected:
|
|||
std::unique_ptr<Expression> m_Operand;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API BinaryExpression : public DebuggableExpression
|
||||
class BinaryExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
BinaryExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -302,7 +302,7 @@ protected:
|
|||
std::unique_ptr<Expression> m_Operand2;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API VariableExpression : public DebuggableExpression
|
||||
class VariableExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
VariableExpression(const String& variable, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -321,10 +321,10 @@ protected:
|
|||
private:
|
||||
String m_Variable;
|
||||
|
||||
friend I2_CONFIG_API void BindToScope(std::unique_ptr<Expression>& expr, ScopeSpecifier scopeSpec);
|
||||
friend void BindToScope(std::unique_ptr<Expression>& expr, ScopeSpecifier scopeSpec);
|
||||
};
|
||||
|
||||
class I2_CONFIG_API NegateExpression : public UnaryExpression
|
||||
class NegateExpression : public UnaryExpression
|
||||
{
|
||||
public:
|
||||
NegateExpression(std::unique_ptr<Expression> operand, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -335,7 +335,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API LogicalNegateExpression : public UnaryExpression
|
||||
class LogicalNegateExpression : public UnaryExpression
|
||||
{
|
||||
public:
|
||||
LogicalNegateExpression(std::unique_ptr<Expression> operand, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -346,7 +346,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API AddExpression : public BinaryExpression
|
||||
class AddExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
AddExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -357,7 +357,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API SubtractExpression : public BinaryExpression
|
||||
class SubtractExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
SubtractExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -368,7 +368,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API MultiplyExpression : public BinaryExpression
|
||||
class MultiplyExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
MultiplyExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -379,7 +379,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API DivideExpression : public BinaryExpression
|
||||
class DivideExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
DivideExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -390,7 +390,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ModuloExpression : public BinaryExpression
|
||||
class ModuloExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
ModuloExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -401,7 +401,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API XorExpression : public BinaryExpression
|
||||
class XorExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
XorExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -412,7 +412,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API BinaryAndExpression : public BinaryExpression
|
||||
class BinaryAndExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
BinaryAndExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -423,7 +423,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API BinaryOrExpression : public BinaryExpression
|
||||
class BinaryOrExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
BinaryOrExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -434,7 +434,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ShiftLeftExpression : public BinaryExpression
|
||||
class ShiftLeftExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
ShiftLeftExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -445,7 +445,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ShiftRightExpression : public BinaryExpression
|
||||
class ShiftRightExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
ShiftRightExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -456,7 +456,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API EqualExpression : public BinaryExpression
|
||||
class EqualExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
EqualExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -467,7 +467,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API NotEqualExpression : public BinaryExpression
|
||||
class NotEqualExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
NotEqualExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -478,7 +478,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API LessThanExpression : public BinaryExpression
|
||||
class LessThanExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
LessThanExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -489,7 +489,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API GreaterThanExpression : public BinaryExpression
|
||||
class GreaterThanExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
GreaterThanExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -500,7 +500,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API LessThanOrEqualExpression : public BinaryExpression
|
||||
class LessThanOrEqualExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
LessThanOrEqualExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -511,7 +511,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API GreaterThanOrEqualExpression : public BinaryExpression
|
||||
class GreaterThanOrEqualExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
GreaterThanOrEqualExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -522,7 +522,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API InExpression : public BinaryExpression
|
||||
class InExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
InExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -533,7 +533,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API NotInExpression : public BinaryExpression
|
||||
class NotInExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
NotInExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -544,7 +544,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API LogicalAndExpression : public BinaryExpression
|
||||
class LogicalAndExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
LogicalAndExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -555,7 +555,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API LogicalOrExpression : public BinaryExpression
|
||||
class LogicalOrExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
LogicalOrExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -566,7 +566,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API FunctionCallExpression : public DebuggableExpression
|
||||
class FunctionCallExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
FunctionCallExpression(std::unique_ptr<Expression> fname, std::vector<std::unique_ptr<Expression> >&& args, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -581,7 +581,7 @@ public:
|
|||
std::vector<std::unique_ptr<Expression> > m_Args;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ArrayExpression : public DebuggableExpression
|
||||
class ArrayExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
ArrayExpression(std::vector<std::unique_ptr<Expression > >&& expressions, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -595,7 +595,7 @@ private:
|
|||
std::vector<std::unique_ptr<Expression> > m_Expressions;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API DictExpression : public DebuggableExpression
|
||||
class DictExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
DictExpression(std::vector<std::unique_ptr<Expression> >&& expressions = {}, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -611,10 +611,10 @@ private:
|
|||
std::vector<std::unique_ptr<Expression> > m_Expressions;
|
||||
bool m_Inline;
|
||||
|
||||
friend I2_CONFIG_API void BindToScope(std::unique_ptr<Expression>& expr, ScopeSpecifier scopeSpec);
|
||||
friend void BindToScope(std::unique_ptr<Expression>& expr, ScopeSpecifier scopeSpec);
|
||||
};
|
||||
|
||||
class I2_CONFIG_API SetExpression : public BinaryExpression
|
||||
class SetExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
SetExpression(std::unique_ptr<Expression> operand1, CombinedSetOp op, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -627,10 +627,10 @@ protected:
|
|||
private:
|
||||
CombinedSetOp m_Op;
|
||||
|
||||
friend I2_CONFIG_API void BindToScope(std::unique_ptr<Expression>& expr, ScopeSpecifier scopeSpec);
|
||||
friend void BindToScope(std::unique_ptr<Expression>& expr, ScopeSpecifier scopeSpec);
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ConditionalExpression : public DebuggableExpression
|
||||
class ConditionalExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
ConditionalExpression(std::unique_ptr<Expression> condition, std::unique_ptr<Expression> true_branch, std::unique_ptr<Expression> false_branch, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -646,7 +646,7 @@ private:
|
|||
std::unique_ptr<Expression> m_FalseBranch;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API WhileExpression : public DebuggableExpression
|
||||
class WhileExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
WhileExpression(std::unique_ptr<Expression> condition, std::unique_ptr<Expression> loop_body, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -662,7 +662,7 @@ private:
|
|||
};
|
||||
|
||||
|
||||
class I2_CONFIG_API ReturnExpression : public UnaryExpression
|
||||
class ReturnExpression : public UnaryExpression
|
||||
{
|
||||
public:
|
||||
ReturnExpression(std::unique_ptr<Expression> expression, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -673,7 +673,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API BreakExpression : public DebuggableExpression
|
||||
class BreakExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
BreakExpression(const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -684,7 +684,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ContinueExpression : public DebuggableExpression
|
||||
class ContinueExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
ContinueExpression(const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -695,7 +695,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API GetScopeExpression : public Expression
|
||||
class GetScopeExpression : public Expression
|
||||
{
|
||||
public:
|
||||
GetScopeExpression(ScopeSpecifier scopeSpec)
|
||||
|
@ -709,7 +709,7 @@ private:
|
|||
ScopeSpecifier m_ScopeSpec;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API IndexerExpression : public BinaryExpression
|
||||
class IndexerExpression : public BinaryExpression
|
||||
{
|
||||
public:
|
||||
IndexerExpression(std::unique_ptr<Expression> operand1, std::unique_ptr<Expression> operand2, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -720,12 +720,12 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
virtual bool GetReference(ScriptFrame& frame, bool init_dict, Value *parent, String *index, DebugHint **dhint) const override;
|
||||
|
||||
friend I2_CONFIG_API void BindToScope(std::unique_ptr<Expression>& expr, ScopeSpecifier scopeSpec);
|
||||
friend void BindToScope(std::unique_ptr<Expression>& expr, ScopeSpecifier scopeSpec);
|
||||
};
|
||||
|
||||
I2_CONFIG_API void BindToScope(std::unique_ptr<Expression>& expr, ScopeSpecifier scopeSpec);
|
||||
void BindToScope(std::unique_ptr<Expression>& expr, ScopeSpecifier scopeSpec);
|
||||
|
||||
class I2_CONFIG_API ThrowExpression : public DebuggableExpression
|
||||
class ThrowExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
ThrowExpression(std::unique_ptr<Expression> message, bool incompleteExpr, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -740,7 +740,7 @@ private:
|
|||
bool m_IncompleteExpr;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ImportExpression : public DebuggableExpression
|
||||
class ImportExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
ImportExpression(std::unique_ptr<Expression> name, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -754,7 +754,7 @@ private:
|
|||
std::unique_ptr<Expression> m_Name;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ImportDefaultTemplatesExpression : public DebuggableExpression
|
||||
class ImportDefaultTemplatesExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
ImportDefaultTemplatesExpression(const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -765,7 +765,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API FunctionExpression : public DebuggableExpression
|
||||
class FunctionExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
FunctionExpression(const String& name, const std::vector<String>& args,
|
||||
|
@ -783,7 +783,7 @@ private:
|
|||
std::shared_ptr<Expression> m_Expression;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ApplyExpression : public DebuggableExpression
|
||||
class ApplyExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
ApplyExpression(const String& type, const String& target, std::unique_ptr<Expression> name,
|
||||
|
@ -813,7 +813,7 @@ private:
|
|||
std::shared_ptr<Expression> m_Expression;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ObjectExpression : public DebuggableExpression
|
||||
class ObjectExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
ObjectExpression(bool abstract, std::unique_ptr<Expression> type, std::unique_ptr<Expression> name, std::unique_ptr<Expression> filter,
|
||||
|
@ -840,7 +840,7 @@ private:
|
|||
std::shared_ptr<Expression> m_Expression;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API ForExpression : public DebuggableExpression
|
||||
class ForExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
ForExpression(const String& fkvar, const String& fvvar, std::unique_ptr<Expression> value, std::unique_ptr<Expression> expression, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -857,7 +857,7 @@ private:
|
|||
std::unique_ptr<Expression> m_Expression;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API LibraryExpression : public UnaryExpression
|
||||
class LibraryExpression : public UnaryExpression
|
||||
{
|
||||
public:
|
||||
LibraryExpression(std::unique_ptr<Expression> expression, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -875,7 +875,7 @@ enum IncludeType
|
|||
IncludeZones
|
||||
};
|
||||
|
||||
class I2_CONFIG_API IncludeExpression : public DebuggableExpression
|
||||
class IncludeExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
IncludeExpression(const String& relativeBase, std::unique_ptr<Expression> path, std::unique_ptr<Expression> pattern, std::unique_ptr<Expression> name,
|
||||
|
@ -898,7 +898,7 @@ private:
|
|||
String m_Package;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API BreakpointExpression : public DebuggableExpression
|
||||
class BreakpointExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
BreakpointExpression(const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -909,7 +909,7 @@ protected:
|
|||
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API UsingExpression : public DebuggableExpression
|
||||
class UsingExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
UsingExpression(std::unique_ptr<Expression> name, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
@ -923,7 +923,7 @@ private:
|
|||
std::unique_ptr<Expression> m_Name;
|
||||
};
|
||||
|
||||
class I2_CONFIG_API TryExceptExpression : public DebuggableExpression
|
||||
class TryExceptExpression : public DebuggableExpression
|
||||
{
|
||||
public:
|
||||
TryExceptExpression(std::unique_ptr<Expression> tryBody, std::unique_ptr<Expression> exceptBody, const DebugInfo& debugInfo = DebugInfo())
|
||||
|
|
|
@ -30,10 +30,4 @@
|
|||
|
||||
#include "base/i2-base.hpp"
|
||||
|
||||
#ifdef I2_CONFIG_BUILD
|
||||
# define I2_CONFIG_API I2_EXPORT
|
||||
#else /* I2_CONFIG_BUILD */
|
||||
# define I2_CONFIG_API I2_IMPORT
|
||||
#endif /* I2_CONFIG_BUILD */
|
||||
|
||||
#endif /* I2CONFIG_H */
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace icinga
|
|||
/**
|
||||
* @ingroup config
|
||||
*/
|
||||
class I2_CONFIG_API ObjectRule
|
||||
class ObjectRule
|
||||
{
|
||||
public:
|
||||
typedef std::set<String> TypeSet;
|
||||
|
|
|
@ -32,21 +32,12 @@ if(ICINGA2_UNITY_BUILD)
|
|||
mkunity_target(db_ido db_ido db_ido_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(db_ido SHARED ${db_ido_SOURCES})
|
||||
add_library(db_ido STATIC ${db_ido_SOURCES})
|
||||
|
||||
include_directories(${Boost_INCLUDE_DIRS})
|
||||
target_link_libraries(db_ido ${Boost_LIBRARIES} base config icinga remote)
|
||||
|
||||
set_target_properties (
|
||||
db_ido PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_DB_IDO_BUILD
|
||||
FOLDER Lib
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS db_ido
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/icinga2
|
||||
)
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup db_ido
|
||||
*/
|
||||
class I2_DB_IDO_API DbConnection : public ObjectImpl<DbConnection>
|
||||
class DbConnection : public ObjectImpl<DbConnection>
|
||||
{
|
||||
public:
|
||||
DECLARE_OBJECT(DbConnection);
|
||||
|
|
|
@ -59,7 +59,7 @@ enum DbObjectType
|
|||
*
|
||||
* @ingroup ido
|
||||
*/
|
||||
class I2_DB_IDO_API DbObject : public Object
|
||||
class DbObject : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(DbObject);
|
||||
|
|
|
@ -60,7 +60,7 @@ enum DbQueryCategory
|
|||
|
||||
class DbObject;
|
||||
|
||||
struct I2_DB_IDO_API DbQuery
|
||||
struct DbQuery
|
||||
{
|
||||
int Type;
|
||||
DbQueryCategory Category;
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace icinga
|
|||
*
|
||||
* @ingroup ido
|
||||
*/
|
||||
struct I2_DB_IDO_API DbReference
|
||||
struct DbReference
|
||||
{
|
||||
public:
|
||||
DbReference(void);
|
||||
|
|
|
@ -36,7 +36,7 @@ class DbObject;
|
|||
*
|
||||
* @ingroup ido
|
||||
*/
|
||||
class I2_DB_IDO_API DbType : public Object
|
||||
class DbType : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(DbType);
|
||||
|
@ -79,7 +79,7 @@ private:
|
|||
*
|
||||
* @ingroup ido
|
||||
*/
|
||||
class I2_DB_IDO_API DbTypeRegistry : public Registry<DbTypeRegistry, DbType::Ptr>
|
||||
class DbTypeRegistry : public Registry<DbTypeRegistry, DbType::Ptr>
|
||||
{
|
||||
public:
|
||||
static DbTypeRegistry *GetInstance(void);
|
||||
|
|
|
@ -39,7 +39,7 @@ enum DbValueType
|
|||
*
|
||||
* @ingroup ido
|
||||
*/
|
||||
struct I2_DB_IDO_API DbValue : public Object
|
||||
struct DbValue : public Object
|
||||
{
|
||||
public:
|
||||
DECLARE_PTR_TYPEDEFS(DbValue);
|
||||
|
|
|
@ -28,10 +28,4 @@
|
|||
|
||||
#include "base/i2-base.hpp"
|
||||
|
||||
#ifdef I2_DB_IDO_BUILD
|
||||
# define I2_DB_IDO_API I2_EXPORT
|
||||
#else /* I2_DB_IDO_BUILD */
|
||||
# define I2_DB_IDO_API I2_IMPORT
|
||||
#endif /* I2_DB_IDO_BUILD */
|
||||
|
||||
#endif /* I2DB_IDO_H */
|
||||
|
|
|
@ -28,17 +28,14 @@ if(MYSQL_FOUND)
|
|||
mkunity_target(db_ido_mysql db_ido_mysql db_ido_mysql_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(db_ido_mysql SHARED ${db_ido_mysql_SOURCES})
|
||||
add_library(db_ido_mysql STATIC ${db_ido_mysql_SOURCES})
|
||||
|
||||
include_directories(${MYSQL_INCLUDE_DIR})
|
||||
target_link_libraries(db_ido_mysql ${Boost_LIBRARIES} ${MYSQL_CLIENT_LIBS} base config icinga db_ido)
|
||||
target_link_libraries(db_ido_mysql ${Boost_LIBRARIES} ${MYSQL_LIB} base config icinga db_ido)
|
||||
|
||||
set_target_properties (
|
||||
db_ido_mysql PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_DB_IDO_MYSQL_BUILD
|
||||
FOLDER Components
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install_if_not_exists(
|
||||
|
@ -46,12 +43,6 @@ if(MYSQL_FOUND)
|
|||
${CMAKE_INSTALL_SYSCONFDIR}/icinga2/features-available
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS db_ido_mysql
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY schema
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/icinga2-ido-mysql
|
||||
|
|
|
@ -15,14 +15,9 @@
|
|||
# along with this program; if not, write to the Free Software Foundation
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
find_package(PostgreSQL)
|
||||
|
||||
if(PostgreSQL_FOUND)
|
||||
mkclass_target(idopgsqlconnection.ti idopgsqlconnection.tcpp idopgsqlconnection.thpp)
|
||||
|
||||
link_directories(${PostgreSQL_LIBRARY_DIRS})
|
||||
include_directories(${PostgreSQL_INCLUDE_DIRS})
|
||||
|
||||
set(db_ido_pgsql_SOURCES
|
||||
idopgsqlconnection.cpp idopgsqlconnection.thpp
|
||||
)
|
||||
|
@ -31,16 +26,13 @@ if(PostgreSQL_FOUND)
|
|||
mkunity_target(db_ido_pgsql db_ido_pgsql db_ido_pgsql_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(db_ido_pgsql SHARED ${db_ido_pgsql_SOURCES})
|
||||
add_library(db_ido_pgsql STATIC ${db_ido_pgsql_SOURCES})
|
||||
|
||||
target_link_libraries(db_ido_pgsql ${Boost_LIBRARIES} ${PostgreSQL_LIBRARIES} base config icinga db_ido)
|
||||
|
||||
set_target_properties (
|
||||
db_ido_pgsql PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_DB_IDO_PGSQL_BUILD
|
||||
FOLDER Components
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install_if_not_exists(
|
||||
|
@ -48,12 +40,6 @@ if(PostgreSQL_FOUND)
|
|||
${CMAKE_INSTALL_SYSCONFDIR}/icinga2/features-available
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS db_ido_pgsql
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY schema
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/icinga2-ido-pgsql
|
||||
|
|
|
@ -25,21 +25,11 @@ if(ICINGA2_UNITY_BUILD)
|
|||
mkunity_target(demo demo demo_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(demo SHARED ${demo_SOURCES})
|
||||
add_library(demo STATIC ${demo_SOURCES})
|
||||
|
||||
target_link_libraries(demo ${Boost_LIBRARIES} base config icinga remote)
|
||||
|
||||
set_target_properties (
|
||||
demo PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_DEMO_BUILD
|
||||
FOLDER Components
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS demo
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/icinga2
|
||||
)
|
||||
|
||||
|
|
|
@ -25,21 +25,11 @@ if(ICINGA2_UNITY_BUILD)
|
|||
mkunity_target(hello hello hello_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(hello SHARED ${hello_SOURCES})
|
||||
add_library(hello STATIC ${hello_SOURCES})
|
||||
|
||||
target_link_libraries(hello ${Boost_LIBRARIES} base config)
|
||||
|
||||
set_target_properties (
|
||||
hello PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_HELLO_BUILD
|
||||
FOLDER Lib
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS hello
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/icinga2
|
||||
)
|
||||
|
||||
|
|
|
@ -56,22 +56,11 @@ if(ICINGA2_UNITY_BUILD)
|
|||
mkunity_target(icinga icinga icinga_SOURCES)
|
||||
endif()
|
||||
|
||||
add_library(icinga SHARED ${icinga_SOURCES})
|
||||
add_library(icinga STATIC ${icinga_SOURCES})
|
||||
|
||||
target_link_libraries(icinga ${Boost_LIBRARIES} base config remote)
|
||||
|
||||
set_target_properties (
|
||||
icinga PROPERTIES
|
||||
INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2
|
||||
DEFINE_SYMBOL I2_ICINGA_BUILD
|
||||
FOLDER Lib
|
||||
VERSION ${SPEC_VERSION}
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS icinga
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/icinga2
|
||||
)
|
||||
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue