cmake_minimum_required(VERSION 2.9) IF(NOT CMAKECHAOS) SET(CMAKECHAOS TRUE) include(${CMAKE_CURRENT_LIST_DIR}/CMakeMacroUtils.txt) include(ExternalProject) ### options and configuration variables #### SET(GITSOURCE https://github.com/amichelotti) SET (CHAOS_FRAMEWORK ${CMAKE_CURRENT_LIST_DIR}/..) set (CHAOS_C_FLAGS "-Wno-deprecated") set (CHAOS_CXX_FLAGS "-Wno-deprecated") set (CHAOS_LINKER_FLAGS "") SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}") IF(CHAOS_CC_COMPILER) MESG("Setting CC compiler ${CHAOS_CC_COMPILER}") SET(CMAKE_CXX_COMPILER ${CHAOS_CC_COMPILER}) CheckCompiler("CXX" ${CHAOS_CC_COMPILER}) CheckCompiler("C" ${CHAOS_C_COMPILER}) SET(CHAOS_BOOST_FLAGS toolset=${CHAOS_C_COMPILER}) ENDIF() IF(CERN_ROOT) ADD_DEFINITIONS(-DCERN_ROOT) ENDIF() IF(NOT DEFINED PROCESSOR_COUNT) SET(PROCESSOR_COUNT 4) execute_process(COMMAND getconf _NPROCESSORS_ONLN OUTPUT_VARIABLE PROCESSOR_COUNT ) STRING(REPLACE "\n" "" PROCESSOR_COUNT ${PROCESSOR_COUNT}) ENDIF() option(CHAOS_FORCE32 "Set to ON to enable 32 bit compilation" OFF) option(CHAOS_STATIC "Set static compilation" OFF) option(ENABLE_MEMCACHE "Enable Memcacahe" OFF) option(CHAOS_DEBUG "Enable Debug" OFF) option(CHAOS_ENABLE_C11 "Enable C11" ON) option(CHAOS_DISABLE_EVENTFD "Disable EventFD" OFF) option(CHAOS_BUILD_CACHE "Keep third part sources" ON) option(CHAOS_BOOST_VERSION "Use a predefined boost version" 66) option(CHAOS_BOOST_MINOR_VERSION "Use a predefined boost minor version" 0) option(CHAOS_BOOST_DYNAMIC "compile and use dynamic boost" OFF) option(CHAOS_BUILD_UNITSERVER "Automatically build an Unit Server that includes all CUs found in distribution" ON) option(CHAOS_SANITIZER "sanitize the specified project" "") option(CHAOS_ADDRESS_SANITIZER "sanitize address" OFF) option(CHAOS_THREAD_SANITIZER "sanitize threads" OFF) option(CDSLIB "Chaos CDS LIBRARY" ON) option(CHAOS_DRIVER_MISC "Driver Misc" ON) option(CHAOS_DRIVER_CCALT "Driver CCALT" ON) option(CHAOS_DRIVER_LUMINOMETER "Driver Luminometer" OFF) option(CHAOS_ENABLE_ZMQ_MONITOR "Enable ZMQ Monitor" OFF) option(CHAOS_EPICS_SUPPORT "Enable EPICS SUPPORT/DRIVERS" OFF) option(KAFKA_RDK_ENABLE "Enable KAFKA" ON) option(CHAOS_TEST "Enable Test" OFF) option(GPUFIT "Fast Fitting libraries (needs CUDA toolkit)" OFF) IF(CHAOS_EPICS_SUPPORT) add_definitions(-DEPICS) INCLUDE_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/include/compiler/gcc ${CMAKE_INSTALL_PREFIX}/include/os/Linux ) LINK_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/lib/linux-x86_64) ENDIF() IF(NOT CHAOS_VERSION_MAJOR) SET(CHAOS_VERSION_MAJOR "1") ENDIF() IF(NOT CHAOS_VERSION_MINOR) SET(CHAOS_VERSION_MINOR "1") ENDIF() IF(NOT CHAOS_BUILD_ID) SET(CHAOS_BUILD_ID 666) ENDIF() IF(CHAOS_ENABLE_ZMQ_MONITOR) ADD_DEFINITIONS(-DENABLE_ZMQ_MONITOR) ENDIF() ADD_DEFINITIONS(-DCSLIB_VERSION_MAJOR="${CHAOS_VERSION_MAJOR}") ADD_DEFINITIONS(-DCSLIB_VERSION_MINOR="${CHAOS_VERSION_MINOR}") ADD_DEFINITIONS(-DCSLIB_BUILD_ID=${CHAOS_BUILD_ID}) if(CMAKE_BUILD_TYPE MATCHES PROFILE) MESG("ENABLING PROFILE on ${PROJECT_NAME}") SET(GCC_COVERAGE_COMPILE_FLAGS "-O0 -g -fprofile-arcs -ftest-coverage") # SET(GCC_COVERAGE_LINK_FLAGS "-lgcov") SET(GCC_COVERAGE_LINK_LIB "gcov") SET(GCC_COVERAGE_LINK_FLAGS "-fprofile-arcs -ftest-coverage -coverage") # ADD_DEFINITIONS(${GCC_COVERAGE_COMPILE_FLAGS}) SET(CHAOS_LINKER_FLAGS "${CHAOS_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}") ENDIF() if((CMAKE_BUILD_TYPE MATCHES DEBUG) OR (CMAKE_BUILD_TYPE MATCHES Debug)) set(CHAOS_DEBUG ON) MESG("ENABLING DEBUG on ${PROJECT_NAME}") ENDIF() if((CMAKE_BUILD_TYPE MATCHES Release) OR (CMAKE_BUILD_TYPE MATCHES RELEASE)) MESG("ENABLING RELEASE on ${PROJECT_NAME}") set (CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -O3") set (CHAOS_C_FLAGS "${CHAOS_C_FLAGS} -O3") ENDIF() if((CMAKE_BUILD_TYPE MATCHES RelWithDebInfo) OR (CMAKE_BUILD_TYPE MATCHES RELWITHDEBINFO)) MESG("ENABLING RELWITHDEBINFO on ${PROJECT_NAME}") set (CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -g -O3") set (CHAOS_C_FLAGS "${CHAOS_C_FLAGS} -g -O3") ENDIF() if((CMAKE_BUILD_TYPE MATCHES MinSizeRel) OR (CMAKE_BUILD_TYPE MATCHES MINSIZEREL)) MESG("ENABLING MINSIZEREL on ${PROJECT_NAME}") set (CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -Os") set (CHAOS_C_FLAGS "${CHAOS_C_FLAGS} -Os") ENDIF() if (CHAOS_DEBUG) MESG("Enable debug mode") set (CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -DDEBUG -g") set (CHAOS_C_FLAGS "${CHAOS_C_FLAGS} -DDEBUG -g") ENDIF() if (CHAOS_ADDRESS_SANITIZER) MESG("Enable ADDRESS SANITIZER") set (CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -fsanitize=address") set (CHAOS_C_FLAGS "${CHAOS_C_FLAGS} -fsanitize=address") ENDIF() if (CHAOS_THREAD_SANITIZER) MESG("Enable THREAD SANITIZER") set (CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -fsanitize=thread") set (CHAOS_C_FLAGS "${CHAOS_C_FLAGS} -fsanitize=thread") ENDIF() set (BOOST_CXX_ADDITIONAL_FLAGS "") IF(CHAOS_ENABLE_C11 AND NOT CHAOS_TARGET) # set (CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -std=c++14") # set (BOOST_CXX_ADDITIONAL_FLAGS "-fvisibility=default") ELSE() # set (BOOST_CXX_ADDITIONAL_FLAGS "-fvisibility=default") set (CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -std=c++98 -DFORCE_BOOST_SHPOINTER") ENDIF() IF( ( DEFINED ENV{CHAOS32}) OR CHAOS_FORCE_32 ) MESG("Enabling 32 bit Compilation") set (BUILD_FORCE_32 1) set (CHAOS_C_FLAGS "${CHAOS_C_FLAGS} -m32") set (CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -m32") SET( CHAOS_BOOST_FLAGS "${CHAOS_BOOST_FLAGS} cflags=-m32 cxxflags=-m32 address-model=32") set (CMAKE_LINK_FLAGS "-m32") ENDIF() IF(CHAOS_BUILD_CACHE) MESG("activated chaos build cache ${CACHE_DIR}") if(NOT EXISTS "${CACHE_DIR}") FILE(MAKE_DIRECTORY ${CACHE_DIR}) ENDIF() ENDIF() EXECUTE_PROCESS(COMMAND uname -s OUTPUT_VARIABLE CHAOS_SYSTEM_NAME) EXECUTE_PROCESS(COMMAND uname -m OUTPUT_VARIABLE CHAOS_SYSTEM_MACHINE) STRING(REPLACE "\n" "" CHAOS_SYSTEM_NAME ${CHAOS_SYSTEM_NAME}) STRING(REPLACE "\n" "" CHAOS_SYSTEM_MACHINE ${CHAOS_SYSTEM_MACHINE}) SET(SYSTEM_NAME ${CHAOS_SYSTEM_NAME}) SET(CMAKE_SYSTEM_NAME ${CHAOS_SYSTEM_NAME}) IF (DEFINED ENV{CHAOS_TARGET} AND NOT CHAOS_TARGET) SET(CHAOS_TARGET $ENV{CHAOS_TARGET}) ENDIF() IF(CHAOS_TARGET) SET(CHAOS_POSTFIX ${CHAOS_TARGET}) ADD_DEFINITIONS(-DCHAOS_TARGET) ELSE() SET(CHAOS_POSTFIX "${CHAOS_SYSTEM_MACHINE}-${CHAOS_SYSTEM_NAME}") ENDIF() set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_STATIC_RUNTIME ON) IF(${SYSTEM_NAME} MATCHES "Darwin") # Mac OS X specific code MESG("enabling MAC compilation") SET(FrameworkLib boost_program_options boost_date_time boost_system boost_chrono boost_regex boost_log_setup boost_log boost_filesystem boost_thread boost_atomic boost_random jsoncpp pthread dl ${GCC_COVERAGE_LINK_LIB}) SET(CHAOS_BOOST_FLAGS toolset=clang) CheckCompiler("CXX" clang++) CheckCompiler("C" clang) SET(CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -stdlib=libc++") SET(CHAOS_C_FLAGS "${CHAOS_C_FLAGS} -stdlib=libc++") set(CHAOS_LINKER_FLAGS "${CHAOS_LINKER_FLAGS} -stdlib=libc++") ELSE() SET(FrameworkLib boost_program_options boost_date_time boost_system boost_chrono boost_regex boost_log_setup boost_log boost_filesystem boost_thread boost_atomic boost_random jsoncpp pthread rt dl ${GCC_COVERAGE_LINK_LIB}) ENDIF() IF ( NOT CMAKE_INSTALL_PREFIX AND DEFINED ENV{CHAOS_PREFIX} ) set(CMAKE_INSTALL_PREFIX $ENV{CHAOS_PREFIX} CACHE FILEPATH "path") set(CMAKE_INSTALL_PREFIX $ENV{CHAOS_PREFIX}) MESG("Setting Install Dir to CHAOS_PREFIX ${CMAKE_INSTALL_PREFIX}") ELSE() IF(NOT DEFINED CMAKE_INSTALL_PREFIX) set(CMAKE_INSTALL_PREFIX ${CHAOS_FRAMEWORK}/chaos-distrib-${CHAOS_POSTFIX} CACHE FILEPATH "path") set(CMAKE_INSTALL_PREFIX ${CHAOS_FRAMEWORK}/chaos-distrib-${CHAOS_POSTFIX}) MESG("Overriding default CHAOS_PREFIX to ${CMAKE_INSTALL_PREFIX}") ELSE() MESG("Default prefix ${CMAKE_INSTALL_PREFIX}") ENDIF() ENDIF() IF (CHAOS_TARGET) IF(${CHAOS_TARGET} MATCHES "armhf") MESG("checking armhf cross compilation chain....") CheckCompiler("CXX" arm-linux-gnueabihf-g++-4.8) CheckCompiler("C" arm-linux-gnueabihf-gcc-4.8) SET(CMAKE_SYSTEM_NAME "Linux") SET(CMAKE_SYSTEM_PROCESSOR "arm") # SET(CMAKE_FIND_ROOT_PATH /usr/arm-linux-gnueabihf/) # SET(CMAKE_CXX_COMPILER_WORKS OFF) # unset(CMAKE_CXX_COMPILER_WORKS CACHE) # unset(CMAKE_CXX_COMPILER_WORKS) SET(COMP_FLAGS "-D__BSON_USEMEMCPY__ -mcpu=xscale -D__BSON_USEM") SET(CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -DBOOST_ASIO_DISABLE_EVENTFD -D__BSON_USEMEMCPY__ -D__BSON_USEMEMCPY__ -DBOOST_ASIO_DISABLE_EVENTFD -mno-unaligned-access -DDISABLE_COMPARE_AND_SWAP") SET(CHAOS_CROSS_HOST arm-linux-gnueabihf) ELSE() IF(${CHAOS_TARGET} MATCHES "arm-linux-2.6") MESG("Cross compiling for ARM(soft float) platforms on linux 2.6") CheckCompiler("CXX" arm-infn-linux-gnueabi-g++) CheckCompiler("C" arm-infn-linux-gnueabi-gcc) SET(CHAOS_CROSS_HOST arm-infn-linux-gnueabi) SET(CHAOS_ENABLE_C11 "Enable C11" OFF) SET (CHAOS_C_FLAGS "${CHAOS_C_FLAGS} -fno-builtin -DCHAOS_NO_BACKTRACE -DBOOST_ASIO_DISABLE_EVENTFD -D__BSON_USEMEMCPY__ -mcpu=xscale -D__BSON_USEMEMCPY__ -DBOOST_ASIO_DISABLE_EVENTFD -mno-unaligned-access -DDISABLE_COMPARE_AND_SWAP -mfloat-abi=soft") SET(CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} ${CHAOS_C_FLAGS}") SET(CHAOS_BOOST_FLAGS toolset=gcc-arm target-os=linux) SET(CHAOS_DISABLE_EVENTFD ON) set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS) # remove -Wl,-Bdynamic set(CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS) ELSE() IF(${CHAOS_TARGET} MATCHES "i686-linux26") SET(CHAOS_ENABLE_C11 "Enable C11" OFF) MESG("Cross compiling for i686 platforms on linux 2.6") CheckCompiler("CXX" i686-nptl-linux-gnu-g++) CheckCompiler("C" i686-nptl-linux-gnu-gcc) SET(CHAOS_CROSS_HOST i686-nptl-linux-gnu) SET(CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -DCHAOS_NO_BACKTRACE -DBOOST_ASIO_DISABLE_EVENTFD") SET(CHAOS_BOOST_FLAGS target-os=linux) SET(CHAOS_DISABLE_EVENTFD ON) set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS) # remove -Wl,-Bdynamic set(CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS) ELSE() IF(${CHAOS_TARGET} MATCHES "crio90xx") MESG("Cross compiling for crio90xx") CheckCompiler("CXX" arm-nilrt-linux-gnueabi-g++) CheckCompiler("C" arm-nilrt-linux-gnueabi-gcc) SET(CHAOS_DISABLE_EVENTFD ON) SET(CHAOS_LINKER_FLAGS "${CHAOS_LINKER_FLAGS} -L/usr/local/chaos/oecore-x86_64/sysroots/armv7a-vfp-neon-nilrt-linux-gnueabi/lib") SET(CHAOS_CROSS_HOST arm-nilrt-linux-gnueabi) SET(CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -march=armv7-a -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mno-unaligned-access --sysroot=/usr/local/chaos/oecore-x86_64/sysroots/armv7a-vfp-neon-nilrt-linux-gnueabi -L/usr/local/chaos/oecore-x86_64/sysroots/armv7a-vfp-neon-nilrt-linux-gnueabi/lib -DBOOST_ASIO_DISABLE_EVENTFD") SET(CHAOS_BOOST_FLAGS target-os=linux) ELSE() ERROR("UNSUPPORTED CHAOS_TARGET ${CHAOS_TARGET}") ENDIF() ENDIF() ENDIF() ENDIF() IF(NOT CMAKE_CXX_COMPILER) ERROR("CANNOT FOUND COMPILER FOR ${CHAOS_TARGET}, \"${CHAOS_CROSS_HOST}-g++\" should be found in path") ENDIF() ENDIF() IF(NOT CMAKE_CXX_COMPILER) project(config) ENDIF() if(CHAOS_BOOST_DYNAMIC) SET(CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -DBOOST_LOG_DYN_LINK") SET(CHAOS_BOOST_FLAGS ${CHAOS_BOOST_FLAGS} link=shared runtime-link=shared) ELSE() SET(CHAOS_BOOST_FLAGS ${CHAOS_BOOST_FLAGS} link=static runtime-link=static) ENDIF() IF(CHAOS_LINKER_FLAGS) SET(CHAOS_BOOST_FLAGS ${CHAOS_BOOST_FLAGS} linkflags=\""${CHAOS_LINKER_FLAGS}"\") ENDIF() # SET(CHAOS_BOOST_FLAGS ${CHAOS_BOOST_FLAGS} cxxflags=\""${CHAOS_CXX_FLAGS} -fPIC ${BOOST_CXX_ADDITIONAL_FLAGS}"\" --prefix=${CMAKE_INSTALL_PREFIX} --with-program_options --with-exception --with-chrono --with-filesystem --with-log --with-regex --with-random --with-system --with-thread --with-atomic --with-timer install "-j ${PROCESSOR_COUNT}" ) SET(CHAOS_BOOST_FLAGS ${CHAOS_BOOST_FLAGS} cxxflags=\""-fPIC"\" --variant=release --prefix=${CMAKE_INSTALL_PREFIX} --with-program_options --with-iostreams --with-exception --with-chrono --with-filesystem --with-log --with-regex --with-random --with-system --with-thread --with-atomic --with-timer install "-j ${PROCESSOR_COUNT}" ) IF(CHAOS_STATIC) MESG("Enabling Static compilation") SET(BUILD_FORCE_STATIC 1) SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") ADD_DEFINITIONS(-DCHAOS_STATIC) SET(CHAOS_LINKER_FLAGS "-static") SET(CMAKE_EXE_LINKER_FLAGS "-static") SET(BUILD_SHARED_LIBRARIES OFF) SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS) SET(CMAKE_SHARED_LIBRARY_LINK_CC_FLAGS) set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS) # remove -Wl,-Bdynamic set(CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS) # SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_SEARCH_END_STATIC 1) ELSE() SET(BUILD_SHARED_LIBRARIES ON) ENDIF() set (CMAKE_C_FLAGS ${CHAOS_C_FLAGS} CACHE STRING "C flags") set (CMAKE_CXX_FLAGS ${CHAOS_CXX_FLAGS} CACHE STRING "C++ flags") set (CMAKE_EXE_LINKER_FLAGS ${CHAOS_LINKER_FLAGS} CACHE STRING "Linker flags") set (CMAKE_C_FLAGS ${CHAOS_C_FLAGS}) set (CMAKE_CXX_FLAGS ${CHAOS_CXX_FLAGS}) set (CMAKE_EXE_LINKER_FLAGS ${CHAOS_LINKER_FLAGS}) # ADD_DEFINITIONS(${CHAOS_C_FLAGS} ${CHAOS_CXX_FLAGS}) IF(CHAOS_CROSS_HOST) SET( CROSS_HOST "--host=${CHAOS_CROSS_HOST}") ENDIF() SET(EXTERNAL_BUILD_DIR ${CMAKE_CURRENT_LIST_DIR}/../external-${CHAOS_POSTFIX}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/build-${CHAOS_POSTFIX}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/build-${CHAOS_POSTFIX}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/build-${CHAOS_POSTFIX}) get_filename_component(CHAOS_CXX_COMPILER_REL ${CMAKE_CXX_COMPILER} NAME) get_filename_component(CHAOS_C_COMPILER_REL ${CMAKE_C_COMPILER} NAME) ###### #### TOOL VERSIONS if (CHAOS_BOOST_MINOR_VERSION) SET(BOOST_MINOR_VERSION ${CHAOS_BOOST_MINOR_VERSION}) ELSE() SET(BOOST_MINOR_VERSION 0) ENDIF() if( CHAOS_BOOST_VERSION) SET(BOOST_VERSION ${CHAOS_BOOST_VERSION}) ELSE() SET(BOOST_VERSION 66) ENDIF() ##### INCLUDE_DIRECTORIES(${CHAOS_FRAMEWORK}) # if( DEFINED ENV{CHAOS_BUNDLE} ) # MESSAGE(STATUS "Using Chaos Bundle Dir $ENV{CHAOS_BUNDLE}") # set (PROJECT_SOURCE_DIR $ENV{CHAOS_BUNDLE}) # INCLUDE_DIRECTORIES($ENV{CHAOS_BUNDLE}/chaosframework) # ENDIF() #If(CHAOS_C_COMPILER) # MESG("Setting C compiler ${CHAOS_C_COMPILER}") # SET(CMAKE_C_COMPILER ${CHAOS_C_COMPILER}) #ENDIF() SET( CMAKE_CHAOS $ENV{CHAOS_CMAKE_FLAGS}) #ADD_DEFINITIONS(-O2) #set(FrameworkLib $ENV{CHAOS_LINK_LIBRARY}) #separate_arguments(FrameworkLib) INCLUDE_DIRECTORIES(. ${PROJECT_SOURCE_DIR} ${CMAKE_INSTALL_PREFIX}/include) LINK_DIRECTORIES(${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_INSTALL_PREFIX}/lib ${CMAKE_INSTALL_PREFIX}/lib64) # foreach(cu ${CHAOS_CUS}) # string (REPLACE ".cpp" ".h" cuh ${cu}) # MESG("CU defined ${cu}") # IF (DEFINED CU_H) # SET(CU_H ${CU_H} ${cuh}) # ELSE() # SET(CU_H ${cuh}) # ENDIF() # IF (DEFINED CU_H) # INSTALL(FILES ${CU_H} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_OUT_H}) # ENDIF() # ENDFOREACH() IF (DEFINED PROJECT_NAME) FILE(GLOB conf_src conf/*) FILE(GLOB perf_src perf/*) INSTALL(FILES ${conf_src} ${perf_src} DESTINATION etc/${PROJECT_NAME}) ENDIF() # SET(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH "prefix") # SET(CMAKE_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib CACHE FILEPATH "prefix") # SET(CMAKE_FRAMEWORK_PATH ${CMAKE_LIBRARY_PATH} CACHE FILEPATH "prefix") SET(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX} ) SET(CMAKE_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib) SET(CMAKE_FRAMEWORK_PATH ${CMAKE_LIBRARY_PATH}) MESG("Chaos Generic settings dir ${CMAKE_CURRENT_SOURCE_DIR} CHAOS_FRAMEWORK: ${CHAOS_FRAMEWORK} on ${PROJECT_NAME}") MESG("CMAKE Version : ${CMAKE_VERSION}") MESG("Host System : ${CHAOS_SYSTEM_NAME}-${CHAOS_SYSTEM_MACHINE}") MESG("Installation Dir : ${CMAKE_INSTALL_PREFIX}") MESG("CXX compiler : ${CMAKE_CXX_COMPILER}") MESG("CXX Flags : ${CHAOS_CXX_FLAGS}") MESG("C compiler : ${CMAKE_C_COMPILER}") MESG("C Flags : ${CHAOS_C_FLAGS}") MESG("Linker Flags : ${CHAOS_LINKER_FLAGS}") MESG("Parallel build : ${PROCESSOR_COUNT}") MESG("Framework libs : ${FrameworkLib}") MESG("BUILD TYPE:${CMAKE_BUILD_TYPE}") if(NOT EXISTS "${CMAKE_INSTALL_PREFIX}") FILE(MAKE_DIRECTORY ${CMAKE_INSTALL_PREFIX}) ENDIF() FILE(COPY ${CMAKE_CURRENT_LIST_DIR}/Findchaos.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/) FILE(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeMacroUtils.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/) unset(Boost_FOUND CACHE) #find_package( Boost COMPONENTS program_options regex date_time system chrono regex log_setup log filesystem thread atomic) unset(LIB_NEED CACHE) find_library(LIB_NEED NAMES boost_program_options boost_regex boost_date_time boost_system boost_chrono boost_log_setup boost_log boost_filesystem boost_thread boost_atomic boost_random PATHS ${CMAKE_INSTALL_PREFIX}/lib NO_DEFAULT_PATH) if(LIB_NEED) MESG("BOOST found !!") # include_directories(${Boost_INCLUDE_DIRS}) else() MESG("boost not found in ${CMAKE_INSTALL_PREFIX}/lib downloading...") set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_STATIC_RUNTIME ON) # boostInstall(${BOOST_VERSION} ${BOOST_MINOR_VERSION} https://dl.bintray.com/boostorg/release/1.${BOOST_VERSION}.${BOOST_MINOR_VERSION}/source "${CHAOS_BOOST_FLAGS}") boostInstall(${BOOST_VERSION} ${BOOST_MINOR_VERSION} https://sourceforge.net/projects/boost/files/boost/1.${BOOST_VERSION}.${BOOST_MINOR_VERSION} "${CHAOS_BOOST_FLAGS}") endif() ENDIF()