summaryrefslogtreecommitdiff
path: root/src/3rd_party/CMakeLists.txt
diff options
context:
space:
mode:
authorAlexander Kutsan <akutsan@luxoft.com>2017-08-09 17:30:02 +0300
committerAlexander Kutsan <akutsan@luxoft.com>2017-08-15 23:09:43 +0300
commit38b4426e797c6cde7e4e88467f85bd31e7464644 (patch)
tree4d0aaaf35c1aac43ae1d82a4d362746dd2d82c26 /src/3rd_party/CMakeLists.txt
parent33143bfdfdd142206298228bd945a8213221160e (diff)
downloadsdl_core-38b4426e797c6cde7e4e88467f85bd31e7464644.tar.gz
Fix instalation of bson to avoid root access
Diffstat (limited to 'src/3rd_party/CMakeLists.txt')
-rw-r--r--src/3rd_party/CMakeLists.txt51
1 files changed, 36 insertions, 15 deletions
diff --git a/src/3rd_party/CMakeLists.txt b/src/3rd_party/CMakeLists.txt
index f9abfb55ce..9abc187d0c 100644
--- a/src/3rd_party/CMakeLists.txt
+++ b/src/3rd_party/CMakeLists.txt
@@ -283,22 +283,43 @@ if(HMI_DBUS_API)
add_subdirectory(dbus-cmake)
endif()
-set(BSON_LIBS_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib PARENT_SCOPE)
-set(BSON_INCLUDE_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX}/include PARENT_SCOPE)
-set(EMHASHMAP_INCLUDE_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX}/include PARENT_SCOPE)
-set(EMHASHMAP_LIBS_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib PARENT_SCOPE)
-set(BSON_LIB_SOURCE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bson_c_lib)
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}")
+set(CMAKE_SOURCE_PREFIX ${CMAKE_SOURCE_PREFIX} "${3RD_PARTY_INSTALL_PREFIX}")
+find_package (BSON)
+message (STATUS "bson installed in " ${BSON_LIBS_DIRECTORY} " , " ${BSON_INCLUDE_DIRECTORY})
+message (STATUS "emhashmap installed in " ${EMHASHMAP_LIBS_DIRECTORY} " , " ${EMHASHMAP_INCLUDE_DIRECTORY})
-include(ExternalProject)
-ExternalProject_Add(libbson
- GIT_REPOSITORY "http://github.com/smartdevicelink/bson_c_lib.git"
- GIT_TAG "master"
- BINARY_DIR ${BSON_LIB_SOURCE_DIRECTORY}
- DOWNLOAD_DIR ${BSON_LIB_SOURCE_DIRECTORY}
- SOURCE_DIR ${BSON_LIB_SOURCE_DIRECTORY}
- CONFIGURE_COMMAND touch aclocal.m4 configure.ac Makefile.am Makefile.in configure && ./configure
- BUILD_COMMAND make
- INSTALL_COMMAND sudo make install)
+if (${BSON_LIB} MATCHES "BSON_LIB-NOTFOUND")
+ message (STATUS "Building bson required")
+ set(BSON_LIB_SOURCE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bson_c_lib CACHE INTERNAL "Sources of bson library" FORCE)
+ set(BSON_LIBS_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX}/lib CACHE INTERNAL "Installation path of bson libraries" FORCE)
+ set(BSON_INCLUDE_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX}/include CACHE INTERNAL "Installation path of bson headers" FORCE)
+ set(EMHASHMAP_LIBS_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX}/lib CACHE INTERNAL "Installation path of emashmap libraries" FORCE)
+ set(EMHASHMAP_INCLUDE_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX}/include CACHE INTERNAL "Installation path of emashmap headers" FORCE)
+
+ set(BSON_INSTALL_COMMAND make install)
+ if (${3RD_PARTY_INSTALL_PREFIX} MATCHES "/usr/local")
+ set(BSON_INSTALL_COMMAND sudo make install)
+ endif()
+ include(ExternalProject)
+ ExternalProject_Add(libbson
+ GIT_REPOSITORY "http://github.com/LuxoftAKutsan/bson_c_lib.git"
+# TODO Change GIT_REPOSITORY to http://github.com/smartdevicelink/bson_c_lib.git
+# after merge of https://github.com/smartdevicelink/bson_c_lib/pull/2
+ GIT_TAG "master"
+ BINARY_DIR ${BSON_LIB_SOURCE_DIRECTORY}
+ INSTALL_DIR ${3RD_PARTY_INSTALL_PREFIX}
+ DOWNLOAD_DIR ${BSON_LIB_SOURCE_DIRECTORY}
+ SOURCE_DIR ${BSON_LIB_SOURCE_DIRECTORY}
+ CONFIGURE_COMMAND touch aclocal.m4 configure.ac Makefile.am Makefile.in configure && ./configure --prefix=${3RD_PARTY_INSTALL_PREFIX}
+ BUILD_COMMAND make
+ INSTALL_COMMAND ${BSON_INSTALL_COMMAND})
+else()
+ get_filename_component(BSON_LIBS_DIRECTORY ${BSON_LIB} DIRECTORY)
+ get_filename_component(EMHASHMAP_LIBS_DIRECTORY ${EMHASHMAP_LIB} DIRECTORY)
+ set(BSON_LIBS_DIRECTORY ${BSON_LIBS_DIRECTORY} CACHE INTERNAL "Installation path of bson libraries" FORCE)
+ set(EMHASHMAP_LIBS_DIRECTORY ${BSON_LIBS_DIRECTORY} CACHE INTERNAL "Installation path of emashmap libraries" FORCE)
+endif()
add_custom_target(install-3rd_party
DEPENDS ${install-3rd_party_logger_var}