Newer
Older
project (chaos)
include(config/CMakeChaos.txt)
option(CHAOS_MEMCACHE_TEST "Memcached test" OFF)
option(CHAOS_ARCHITECTURE_TEST "Architecture tests" ON)
option(CHAOS_CDS "Chaos Data Service" ON)
option(CHAOS_MDS "Chaos MetaData Service" ON)
option(CHAOS_WAN "Chaos Wan Service" ON)
option(CHAOS_DATA_EXPORT "Chaos Data Export" ON)
option(CHAOS_EXAMPLES "Chaos Examples" ON)
option(CHAOS_CCS "Chaos CCS Compile needs qt5.6-static-x86_64 installed" OFF)
###### Required Libraries
CheckConfigureBuild(jsoncpp jsoncpp "-DJSONCPP_WITH_TESTS=OFF;-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF" https://github.com/bisegni )
CheckConfigureBuild(mongoose mongoose-cpp "-DHAS_JSONCPP=ON;-DENABLE_PIC=ON" https://github.com/bisegni )
CheckConfigureBuild(mongoclient mongo-cxx-driver:legacy-1.0.0-rc0 "--extralib=boost_system;--disable-warnings-as-errors;install-mongoclient" https://github.com/mongodb)
#########
SET( ${PROJECT_NAME}_MAJOR_VERSION 0 )
SET( ${PROJECT_NAME}_MINOR_VERSION 1 )
SET( ${PROJECT_NAME}_PATCH_LEVEL 0 )
EXECUTE_PROCESS(COMMAND chaos/common/version.sh)
INCLUDE_DIRECTORIES(. ../ ../../ ${CMAKE_INSTALL_PREFIX}/include)
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
ADD_SUBDIRECTORY(chaos/common)
ADD_SUBDIRECTORY(chaos/cu_toolkit)
ADD_SUBDIRECTORY(chaos/ui_toolkit)
IF (CHAOS_MDS)
MESG("Configure Chaos Metadata Service")
ADD_SUBDIRECTORY(ChaosMetadataService)
MESG("Configure Chaos Metadata Service Client Library")
ADD_SUBDIRECTORY(ChaosMetadataServiceClient)

Claudio Bisegni
committed
MESG("Configure Chaos Metadata Service Client Library Test Application")
ADD_SUBDIRECTORY(ChaosMetadataServiceClientTest)
IF (CHAOS_WAN)
MESG("Configure Chaos WAN Proxy")
ADD_SUBDIRECTORY(ChaosWANProxy)
IF (CHAOS_CDS)
MESG("Configure Chaos Data Service")
ADD_SUBDIRECTORY(ChaosDataService)
ENDIF()
IF (CHAOS_DATA_EXPORT)
MESG("Configure Chaos Data Export ")
ADD_SUBDIRECTORY(ChaosDataExport)
ENDIF()

Claudio Bisegni
committed
IF(CHAOS_EXAMPLES)
MESG("Configure Chaos CLI")
ADD_SUBDIRECTORY(example/ChaosCLI)

Andrea Michelotti
committed
MESG("Configure Chaos ChaosMDSCmd")
ADD_SUBDIRECTORY(example/ChaosMDSCmd)
MESG("Configure Chaos Performance Tester")
ADD_SUBDIRECTORY(example/ChaosPerformanceTester)
#MESG("Configure Control Unit Test examples")
#ADD_SUBDIRECTORY(example/ControlUnitTest bin/bin_example_cutest)

Andrea Michelotti
committed
#MESG("Configure BenchTest simulation excutable")
#ADD_SUBDIRECTORY(example/BenchTest bin/bench_test)
MESG("Configure ChaosMemCacheTest test excutable")
ADD_SUBDIRECTORY(test/MemcachedEmbeddedTest)
ENDIF()
IF (CHAOS_ARCHITECTURE_TEST)
MESG("Configure ChaosArchitectureTests test excutable")
ADD_SUBDIRECTORY(ArchitectureTests)
ENDIF()
MESG("Done")
# MESG("Configure Chaos Snapshot Utility")
# ADD_SUBDIRECTORY(ChaosSnapshotUtility/ChaosSnapshotUtility bin/chaos_snap_util)
#ADD_SUBDIRECTORY(test/PluginTest bin/plugin_test)
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/usr/)
execute_process(
COMMAND ln -sf ${CMAKE_INSTALL_PREFIX} ${CMAKE_CURRENT_SOURCE_DIR}/usr/local
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE err
OUTPUT_VARIABLE out
)
IF(err)
ERROR("cannot create symlink ${CMAKE_INSTALL_PREFIX} ${CMAKE_CURRENT_SOURCE_DIR}/usr/local"
ELSE()
MESG("created symlink ${CMAKE_INSTALL_PREFIX}->${CMAKE_CURRENT_SOURCE_DIR}/usr/local")
ENDIF()
IF(CHAOS_CCS)
MESG("CCS compilation ENABLED")
IF(EXISTS "/usr/local/chaos/qt5.6-static-x86_64/bin/qmake")
execute_process(
COMMAND /usr/local/chaos/qt5.6-static-x86_64/bin/qmake
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ccs
RESULT_VARIABLE err
OUTPUT_VARIABLE out
)
if( err)
ERROR("error generating QT stubs error: ${out}")
endif()
execute_process(
COMMAND make -j ${PROCESSOR_COUNT}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ccs
RESULT_VARIABLE err
OUTPUT_VARIABLE out
)
if( err)
ERROR("error compiling: ${out}")
endif()
FILE(GLOB exe ccs/ccs ccs/ccs.sh)
INSTALL(FILES ${exe} DESTINATION bin/)
ELSE()
ERROR("missing /usr/local/chaos/qt5.6-static-x86_64/bin/qmake")
ENDIF()
ENDIF()