Добавил скачивание, сборку и подключение boost к проекту
This commit is contained in:
parent
c4e3af077c
commit
b7af8aa6e4
@ -3,13 +3,13 @@ cmake_minimum_required(VERSION 2.8)
|
|||||||
set(TEST_PROJECT_NAME "cpputil_test")
|
set(TEST_PROJECT_NAME "cpputil_test")
|
||||||
set(SRC_DIR ".")
|
set(SRC_DIR ".")
|
||||||
set(REQUIRED_LIBRARIES cpputil)
|
set(REQUIRED_LIBRARIES cpputil)
|
||||||
|
set(boost_version 1.56.0)
|
||||||
|
set(boost_version_underscored 1_56_0)
|
||||||
|
|
||||||
# https://googletest.googlecode.com/files/gtest-1.7.0.zip
|
INCLUDE(ExternalProject)
|
||||||
|
SET_DIRECTORY_PROPERTIES(PROPERTIES EP_PREFIX ${CMAKE_BINARY_DIR}/ThirdParty)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
INCLUDE(ExternalProject)
|
|
||||||
SET_DIRECTORY_PROPERTIES(PROPERTIES EP_PREFIX ${CMAKE_BINARY_DIR}/ThirdParty)
|
|
||||||
|
|
||||||
ExternalProject_Add(
|
ExternalProject_Add(
|
||||||
googletest
|
googletest
|
||||||
URL https://googletest.googlecode.com/files/gtest-1.7.0.zip
|
URL https://googletest.googlecode.com/files/gtest-1.7.0.zip
|
||||||
@ -27,7 +27,6 @@ if(APPLE)
|
|||||||
ExternalProject_Get_Property(googletest source_dir)
|
ExternalProject_Get_Property(googletest source_dir)
|
||||||
ExternalProject_Get_Property(googletest binary_dir)
|
ExternalProject_Get_Property(googletest binary_dir)
|
||||||
INCLUDE_DIRECTORIES(${source_dir}/include)
|
INCLUDE_DIRECTORIES(${source_dir}/include)
|
||||||
#link_directories(${binary_dir}/Debug)
|
|
||||||
else()
|
else()
|
||||||
FIND_PACKAGE(GTest REQUIRED)
|
FIND_PACKAGE(GTest REQUIRED)
|
||||||
if(NOT GTEST_FOUND)
|
if(NOT GTEST_FOUND)
|
||||||
@ -38,13 +37,36 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
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
|
||||||
|
BUILD_COMMAND ./b2 --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 )
|
||||||
|
ExternalProject_Get_Property( boost binary_dir )
|
||||||
|
set( Boost_INCLUDE_DIRS ${source_dir} )
|
||||||
|
set( Boost_LIBRARIES debug;${binary_dir}/stage/lib/libboost_program_options-vc110-mt-gd-1_49.lib;optimized;${binary_dir}/stage/lib/libboost_program_options-vc110-mt-1_49.lib )
|
||||||
|
|
||||||
project(${TEST_PROJECT_NAME} CXX)
|
project(${TEST_PROJECT_NAME} CXX)
|
||||||
aux_source_directory(${SRC_DIR} TEST_SRC)
|
aux_source_directory(${SRC_DIR} TEST_SRC)
|
||||||
add_executable(${TEST_PROJECT_NAME} ${TEST_SRC})
|
add_executable(${TEST_PROJECT_NAME} ${TEST_SRC})
|
||||||
SET_TARGET_PROPERTIES(${TEST_PROJECT_NAME} PROPERTIES ENABLE_EXPORTS TRUE)
|
SET_TARGET_PROPERTIES(${TEST_PROJECT_NAME} PROPERTIES ENABLE_EXPORTS TRUE)
|
||||||
ADD_DEPENDENCIES(${TEST_PROJECT_NAME} googletest cpputil)
|
ADD_DEPENDENCIES(${TEST_PROJECT_NAME} googletest cpputil boost)
|
||||||
|
|
||||||
target_link_libraries(${TEST_PROJECT_NAME} ${REQUIRED_LIBRARIES} ${CMAKE_SOURCE_DIR}/lib/libgtest.a)
|
target_link_libraries(${TEST_PROJECT_NAME} ${REQUIRED_LIBRARIES} ${CMAKE_SOURCE_DIR}/lib/libgtest.a ${CMAKE_SOURCE_DIR}/lib/libboost_coroutine.a)
|
||||||
|
|
||||||
install(TARGETS ${TEST_PROJECT_NAME}
|
install(TARGETS ${TEST_PROJECT_NAME}
|
||||||
RUNTIME DESTINATION bin
|
RUNTIME DESTINATION bin
|
||||||
|
|||||||
@ -562,7 +562,10 @@ TEST(Ustring, replace_string)
|
|||||||
EXPECT_TRUE(str2 == "33 hello 33 world 33 more 33 and 33 more 33");
|
EXPECT_TRUE(str2 == "33 hello 33 world 33 more 33 and 33 more 33");
|
||||||
}
|
}
|
||||||
|
|
||||||
//logger flog("test.log");
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// threadpool demo
|
||||||
|
//
|
||||||
|
|
||||||
void func(std::size_t n)
|
void func(std::size_t n)
|
||||||
{
|
{
|
||||||
@ -588,41 +591,27 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void run_threadpool_demo()
|
||||||
|
{
|
||||||
|
threadpool pool(4);
|
||||||
|
std::vector<std::future<int>> vec;
|
||||||
|
|
||||||
|
foo f;
|
||||||
|
for (std::size_t i = 0; i < 100; ++i)
|
||||||
|
{
|
||||||
|
//std::future<int> fut = pool.add_task<int>([i] { return i; });
|
||||||
|
std::future<int> fut = pool.add_task(&foo::bar, &f, (int)i);
|
||||||
|
vec.push_back(std::move(fut));
|
||||||
|
}
|
||||||
|
|
||||||
|
for(std::size_t i = 0; i < 100; ++i)
|
||||||
|
{
|
||||||
|
std::cout << "res[" << i << "] = " << vec[i].get() << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
//::testing::InitGoogleTest(&argc, argv);
|
::testing::InitGoogleTest(&argc, argv);
|
||||||
//return RUN_ALL_TESTS();
|
return RUN_ALL_TESTS();
|
||||||
|
|
||||||
/*
|
|
||||||
const std::size_t threadsCount = 2;
|
|
||||||
|
|
||||||
std::thread threads[threadsCount];
|
|
||||||
for(std::size_t i = 0; i < threadsCount; ++i)
|
|
||||||
{
|
|
||||||
threads[i] = std::thread(func, i);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::cout << "the end" << std::endl;
|
|
||||||
|
|
||||||
for(std::size_t i = 0; i < threadsCount; ++i)
|
|
||||||
threads[i].join();
|
|
||||||
*/
|
|
||||||
|
|
||||||
threadpool pool(4);
|
|
||||||
std::vector<std::future<int>> vec;
|
|
||||||
|
|
||||||
foo f;
|
|
||||||
for (std::size_t i = 0; i < 100; ++i)
|
|
||||||
{
|
|
||||||
//std::future<int> fut = pool.add_task<int>([i] { return i; });
|
|
||||||
std::future<int> fut = pool.add_task(&foo::bar, &f, (int)i);
|
|
||||||
vec.push_back(std::move(fut));
|
|
||||||
}
|
|
||||||
|
|
||||||
for(std::size_t i = 0; i < 100; ++i)
|
|
||||||
{
|
|
||||||
std::cout << "res[" << i << "] = " << vec[i].get() << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user