diff --git a/3rdParty/jemalloc/CMakeLists.txt b/3rdParty/jemalloc/CMakeLists.txt index 23d0922cc5..cd04db8278 100644 --- a/3rdParty/jemalloc/CMakeLists.txt +++ b/3rdParty/jemalloc/CMakeLists.txt @@ -31,21 +31,42 @@ endif () # generate external project if (LINUX OR DARWIN) + if (DARWIN) + set(JEMALLOC_CC_TMP "cc") + set(JEMALLOC_CXX_TMP "c++}") + else () + set(JEMALLOC_CC_TMP "${CMAKE_C_COMPILER}") + set(JEMALLOC_CXX_TMP "${CMAKE_CXX_COMPILER}") + endif () + + set(JEMALLOC_CFLAGS_TMP "-DARANGODB_MMAP_JEMALLOC=1") + set(JEMALLOC_CXXFLAGS_TMP "-DARANGODB_MMAP_JEMALLOC=1") + ExternalProject_Add( jemalloc SOURCE_DIR ${JEMALLOC_BINARY_DIR} + PREFIX + ${JEMALLOC_BINARY_DIR} PATCH_COMMAND cmake -E touch ${JEMALLOC_BINARY_DIR}/doc/jemalloc.html ${JEMALLOC_BINARY_DIR}/doc/jemalloc.3 CONFIGURE_COMMAND - ./configure CFLAGS=-DARANGODB_MMAP_JEMALLOC=1 --prefix=${CMAKE_CURRENT_BINARY_DIR} --disable-munmap --with-version=${JEMALLOC_VERSION}-0-g0 - PREFIX - ${JEMALLOC_BINARY_DIR} + ./configure CC=${JEMALLOC_CC_TMP} + CXX=${JEMALLOC_CXX_TMP} + CFLAGS=${JEMALLOC_CFLAGS_TMP} + CXXFLAGS=${JEMALLOC_CXXFLAGS_TMP} + --prefix=${CMAKE_CURRENT_BINARY_DIR} + --disable-munmap + --with-version=${JEMALLOC_VERSION}-0-g0 BUILD_COMMAND - make + make build_lib_static BUILD_IN_SOURCE 1 + INSTALL_COMMAND + make install_include + && mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/lib + && cp -a ${JEMALLOC_BINARY_DIR}/lib/libjemalloc.a ${CMAKE_CURRENT_BINARY_DIR}/lib ) endif () diff --git a/CMakeLists.txt b/CMakeLists.txt index de2a94a04b..cc911ba39d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,6 +31,8 @@ if (NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" message(FATAL_ERROR "expecting CMAKE_BUILD_TYPE: None Debug Release RelWithDebInfo MinSizeRel, got ${CMAKE_BUILD_TYPE}.") endif () +string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPER) + if (NOT CMAKE_OSX_DEPLOYMENT_TARGET) set(CMAKE_OSX_DEPLOYMENT_TARGET "10.11" CACHE STRING "deployment target for MacOSX; adjust to your sysem") endif () @@ -534,6 +536,23 @@ if (NOT WINDOWS) endif () endif () +# ------------------------------------------------------------------------------ +# IMPLICIT INCLUDES AND LIBIRARY DIRECTORIES +# ------------------------------------------------------------------------------ + +function(CREATE_FLAGS OUTPUT GLUE) + set(_TMP_RESULT "") + + foreach(arg ${ARGN}) + set(_TMP_RESULT "${_TMP_RESULT} ${GLUE}${arg}") + endforeach() + + set(${OUTPUT} "${_TMP_RESULT}" PARENT_SCOPE) +endfunction() + +# CREATE_FLAGS(IMPLICIT_C_INCLUDES "${CMAKE_C_SYSROOT_FLAG} " ${CMAKE_OSX_SYSROOT}) +# CREATE_FLAGS(IMPLICIT_CXX_INCLUDES "${CMAKE_CXX_SYSROOT_FLAG} " ${CMAKE_OSX_SYSROOT}) + # ------------------------------------------------------------------------------ # JEMALLOC # ------------------------------------------------------------------------------ @@ -673,26 +692,9 @@ if (VERBOSE) if (CMAKE_BUILD_TYPE STREQUAL "None") message(STATUS "Info CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") message(STATUS "Info CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") - endif () - - if (CMAKE_BUILD_TYPE STREQUAL "Debug") - message(STATUS "Info CMAKE_C_FLAGS_DEBUG: ${CMAKE_C_FLAGS_DEBUG}") - message(STATUS "Info CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}") - endif () - - if (CMAKE_BUILD_TYPE STREQUAL "Release") - message(STATUS "Info CMAKE_C_FLAGS_RELEASE: ${CMAKE_C_FLAGS_RELEASE}") - message(STATUS "Info CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}") - endif () - - if (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") - message(STATUS "Info CMAKE_C_FLAGS_RELWITHDEBINFO: ${CMAKE_C_FLAGS_RELWITHDEBINFO}") - message(STATUS "Info CMAKE_CXX_FLAGS_RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") - endif () - - if (CMAKE_BUILD_TYPE STREQUAL "MinSizeRel") - message(STATUS "Info CMAKE_C_FLAGS_MINSIZEREL: ${CMAKE_C_FLAGS_MINSIZEREL}") - message(STATUS "Info CMAKE_CXX_FLAGS_MINSIZEREL: ${CMAKE_CXX_FLAGS_MINSIZEREL}") + else () + message(STATUS "Info CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER}: ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}") + message(STATUS "Info CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}: ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}") endif () message(STATUS "Info CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}") @@ -923,6 +925,7 @@ endif () # steps generating an AST. This AST can in turn be used # for meaningful auto-completion in editors without # heuristics, dice rolling and other guessing. + if( EXISTS "${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json" ) message(STATUS "copy compile_commands.json") @@ -950,3 +953,10 @@ add_custom_target(clean_autogenerated_files message(STATUS "building for git revision: ${ARANGODB_BUILD_REPOSITORY}") +# if (VERBOSE) +# get_cmake_property(_variableNames VARIABLES) +# +# foreach (_variableName ${_variableNames}) +# message(STATUS "${_variableName}=${${_variableName}}") +# endforeach () +# endif ()