]> granicus.if.org Git - icinga2/commitdiff
Use system-provided version of YAJL where available
authorGunnar Beutner <gunnar.beutner@netways.de>
Mon, 27 Oct 2014 11:42:57 +0000 (12:42 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Mon, 27 Oct 2014 11:42:57 +0000 (12:42 +0100)
fixes #7454

CMakeLists.txt
INSTALL.md
cmake/FindYAJL.cmake [new file with mode: 0644]
debian/control
lib/base/CMakeLists.txt
third-party/CMakeLists.txt

index e13d08856f2de6aa645c5b6d9d36e1a0b4f7dab2..4946db376214ce4408a169aa19233f6743aba76f 100644 (file)
@@ -80,6 +80,14 @@ include_directories(${Boost_INCLUDE_DIRS})
 find_package(OpenSSL REQUIRED)
 include_directories(${OPENSSL_INCLUDE_DIR})
 
+find_package(YAJL)
+
+if(NOT YAJL_FOUND)
+  include_directories(${icinga2_BINARY_DIR}/third-party/yajl/include)
+  link_directories(${icinga2_BINARY_DIR}/third-party/yajl)
+  set(YAJL_LIBRARIES "yajl")
+endif()
+
 include_directories(
   ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/lib
   ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/lib
index a3019fe39eaad23f19c4f529c885041206095124..0ee1f828c478a5cbc13e0ebda1146f68a541f722 100644 (file)
@@ -28,6 +28,7 @@ parentheses):
 * recommended: libexecinfo on FreeBSD
 * optional: MySQL (mysql-devel on RHEL, libmysqlclient-dev on Debian)
 * optional: PostgreSQL (postgresql-devel on RHEL, libpq-dev on Debian)
+* optional: YAJL (yajl-devel on RHEL, libyajl-dev on Debian)
 
 Note: RHEL5 ships an ancient flex version. Updated packages are available for
 example from the repoforge buildtools repository.
diff --git a/cmake/FindYAJL.cmake b/cmake/FindYAJL.cmake
new file mode 100644 (file)
index 0000000..b7d7732
--- /dev/null
@@ -0,0 +1,28 @@
+# - Try to find libyajl
+# Once done this will define
+#  YAJL_FOUND - System has YAJL
+#  YAJL_INCLUDE_DIRS - The YAJL include directories
+#  YAJL_LIBRARIES - The libraries needed to use YAJL
+#  YAJL_DEFINITIONS - Compiler switches required for using YAJL
+
+find_package(PkgConfig)
+pkg_check_modules(PC_YAJL QUIET yajl)
+set(YAJL_DEFINITIONS ${PC_YAJL_CFLAGS_OTHER})
+
+find_path(YAJL_INCLUDE_DIR yajl/yajl_parse.h
+          HINTS ${PC_YAJL_INCLUDEDIR} ${PC_YAJL_INCLUDE_DIRS}
+          PATH_SUFFIXES libyajl)
+
+find_library(YAJL_LIBRARY NAMES yajl libyajl
+             HINTS ${PC_YAJL_LIBDIR} ${PC_YAJL_LIBRARY_DIRS})
+
+set(YAJL_LIBRARIES ${YAJL_LIBRARY} )
+set(YAJL_INCLUDE_DIRS ${YAJL_INCLUDE_DIR})
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set YAJL_FOUND to TRUE
+# if all listed variables are TRUE
+find_package_handle_standard_args(yajl  DEFAULT_MSG
+                                  YAJL_LIBRARY YAJL_INCLUDE_DIR)
+
+mark_as_advanced(YAJL_INCLUDE_DIR YAJL_LIBRARY)
index ba6f639d79786124affe9535ec5e9cf459fb86d9..b5817b509390b24e8e5de0b0f6f45b599809e09d 100644 (file)
@@ -19,6 +19,7 @@ Build-Depends: bison,
                libmysqlclient-dev,
                libpq-dev,
                libssl-dev,
+               libyajl-dev,
                make (>= 3.81),
                po-debconf
 Standards-Version: 3.9.5
index 40a1d7961be400c17859d941025ad013bdd9fa1a..5947e73a2cd487655512c08f4f70794303041f17 100644 (file)
@@ -41,7 +41,7 @@ endif()
 
 add_library(base SHARED ${base_SOURCES})
 
-target_link_libraries(base ${CMAKE_DL_LIBS} ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} mmatch yajl)
+target_link_libraries(base ${CMAKE_DL_LIBS} ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${YAJL_LIBRARIES} mmatch)
 
 if(HAVE_LIBEXECINFO)
     target_link_libraries(base execinfo)
@@ -56,9 +56,6 @@ link_directories(${icinga2_BINARY_DIR}/third-party/execvpe)
 include_directories(${icinga2_SOURCE_DIR}/third-party/mmatch)
 link_directories(${icinga2_BINARY_DIR}/third-party/mmatch)
 
-include_directories(${icinga2_BINARY_DIR}/third-party/yajl/include)
-link_directories(${icinga2_BINARY_DIR}/third-party/yajl)
-
 if(UNIX OR CYGWIN)
   target_link_libraries(base execvpe)
 endif()
index 41fc705c54d2a6af7d0eeddcce5d3d21dead7394..dba21182ab90fce69a0b13e6dc3361c46831861e 100644 (file)
 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 add_subdirectory(mmatch)
-add_subdirectory(yajl)
+
+if(NOT YAJL_FOUND)
+  add_subdirectory(yajl)
+endif()
 
 if(UNIX OR CYGWIN)
   add_subdirectory(execvpe)