70 lines
2.6 KiB
CMake
Executable File
70 lines
2.6 KiB
CMake
Executable File
cmake_minimum_required(VERSION 2.8)
|
|
|
|
set(TEST_PROJECT_NAME "cpputil_test")
|
|
set(TEST_SERVER_PROJECT_NAME "server_test")
|
|
set(TEST_CLIENT_PROJECT_NAME "client_test")
|
|
set(SRC_DIR ".")
|
|
set(REQUIRED_LIBRARIES cpputil)
|
|
set(boost_version 1.56.0)
|
|
set(boost_version_underscored 1_56_0)
|
|
|
|
INCLUDE(ExternalProject)
|
|
SET_DIRECTORY_PROPERTIES(PROPERTIES EP_PREFIX ${CMAKE_BINARY_DIR}/ThirdParty)
|
|
|
|
ExternalProject_Add(
|
|
googletest
|
|
URL https://googletest.googlecode.com/files/gtest-1.7.0.zip
|
|
TIMEOUT 100
|
|
CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${CMAKE_SOURCE_DIR}/lib
|
|
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${CMAKE_SOURCE_DIR}/lib
|
|
#-Dgtest_force_shared_crt=ON
|
|
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
|
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
|
INSTALL_COMMAND ""
|
|
LOG_DOWNLOAD ON
|
|
LOG_CONFIGURE ON
|
|
LOG_BUILD ON)
|
|
|
|
ExternalProject_Get_Property(googletest source_dir)
|
|
ExternalProject_Get_Property(googletest binary_dir)
|
|
INCLUDE_DIRECTORIES(${source_dir}/include)
|
|
|
|
if(CMAKE_BUILD_TYPE MATCHES RELEASE)
|
|
set(boost_build_type "release")
|
|
elseif(CMAKE_BUILD_TYPE MATCHES DEBUG)
|
|
set(boost_build_type "debug")
|
|
endif()
|
|
|
|
ExternalProject_Add(
|
|
boost
|
|
URL http://switch.dl.sourceforge.net/project/boost/boost/${boost_version}/boost_${boost_version_underscored}.zip
|
|
CONFIGURE_COMMAND ./bootstrap.sh --with-libraries=coroutine,thread
|
|
BUILD_COMMAND ./b2 --ignore-site-config --stagedir=${CMAKE_SOURCE_DIR} link=static threading=multi cxxflags=-std=c++11 ${boost_build_type}
|
|
BUILD_IN_SOURCE 1
|
|
INSTALL_COMMAND ""
|
|
LOG_DOWNLOAD ON
|
|
LOG_CONFIGURE ON
|
|
LOG_BUILD ON
|
|
)
|
|
|
|
ExternalProject_Get_Property( boost source_dir )
|
|
set(BOOST_INCLUDE_DIR ${source_dir})
|
|
INCLUDE_DIRECTORIES(${BOOST_INCLUDE_DIR})
|
|
|
|
project(${TEST_PROJECT_NAME} CXX)
|
|
aux_source_directory(${SRC_DIR}/cpputil TEST_SRC)
|
|
add_executable(${TEST_PROJECT_NAME} ${TEST_SRC})
|
|
SET_TARGET_PROPERTIES(${TEST_PROJECT_NAME} PROPERTIES ENABLE_EXPORTS TRUE)
|
|
ADD_DEPENDENCIES(${TEST_PROJECT_NAME} googletest cpputil)
|
|
target_link_libraries(${TEST_PROJECT_NAME} ${REQUIRED_LIBRARIES} ${CMAKE_SOURCE_DIR}/lib/libgtest.a)
|
|
|
|
project(${TEST_SERVER_PROJECT_NAME} CXX)
|
|
aux_source_directory(${SRC_DIR}/server TEST_SERVER_SRC)
|
|
add_executable(${TEST_SERVER_PROJECT_NAME} ${TEST_SERVER_SRC})
|
|
add_dependencies(${TEST_SERVER_PROJECT_NAME} boost cpputil)
|
|
target_link_libraries(${TEST_SERVER_PROJECT_NAME} cpputil ${CMAKE_SOURCE_DIR}/lib/libboost_system.a ${CMAKE_SOURCE_DIR}/lib/libboost_coroutine.a ${CMAKE_SOURCE_DIR}/lib/libboost_context.a ${CMAKE_SOURCE_DIR}/lib/libboost_thread.a)
|
|
|
|
install(TARGETS ${TEST_PROJECT_NAME}
|
|
RUNTIME DESTINATION bin
|
|
ARCHIVE DESTINATION lib)
|