summaryrefslogtreecommitdiff
path: root/projects/CMake/CMakeLists.txt
blob: 211c51700ea3d7af37976d0b24b4aeec4ce9b604 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
cmake_minimum_required(VERSION 2.8)

project(rxcpp)

MESSAGE( STATUS "CMAKE_CXX_COMPILER_ID: " ${CMAKE_CXX_COMPILER_ID} )

FIND_PACKAGE(Threads)

if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
    list( APPEND CMAKE_CXX_FLAGS " -std=c++11 ${CMAKE_CXX_FLAGS}")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
    list( APPEND CMAKE_CXX_FLAGS " -std=c++11 ${CMAKE_CXX_FLAGS}")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
    list( APPEND CMAKE_CXX_FLAGS " /DUNICODE /D_UNICODE /bigobj ${CMAKE_CXX_FLAGS}")
endif()


# define some folders
get_filename_component(RXCPP_DIR "${CMAKE_CURRENT_SOURCE_DIR}" PATH)
get_filename_component(RXCPP_DIR "${RXCPP_DIR}" PATH)

set(TEST_DIR ${RXCPP_DIR}/Rx/v2/test)
set(EXAMPLES_DIR ${RXCPP_DIR}/Rx/v2/examples)

include_directories(${RXCPP_DIR}/ext/catch/include ${RXCPP_DIR}/Ix/CPP/src ${RXCPP_DIR}/Rx/v2/src)

# define the sources of the self test
set(TEST_SOURCES
    ${TEST_DIR}/test.cpp
    ${TEST_DIR}/subscriptions/observer.cpp
    ${TEST_DIR}/subscriptions/subscription.cpp
    ${TEST_DIR}/subjects/subject.cpp
    ${TEST_DIR}/sources/defer.cpp
    ${TEST_DIR}/sources/interval.cpp
    ${TEST_DIR}/operators/buffer.cpp
    ${TEST_DIR}/operators/combine_latest.cpp
    ${TEST_DIR}/operators/concat.cpp
    ${TEST_DIR}/operators/merge.cpp
    ${TEST_DIR}/operators/lift.cpp
    ${TEST_DIR}/operators/filter.cpp
    ${TEST_DIR}/operators/scan.cpp
    ${TEST_DIR}/operators/take.cpp
    ${TEST_DIR}/operators/publish.cpp
    ${TEST_DIR}/operators/flat_map.cpp
    ${TEST_DIR}/operators/concat_map.cpp
    ${TEST_DIR}/operators/map.cpp
)
add_executable(rxcppv2_test ${TEST_SOURCES})
TARGET_LINK_LIBRARIES(rxcppv2_test ${CMAKE_THREAD_LIBS_INIT})

# define the sources of the pythagorian example
set(PYTHAGORIAN_SOURCES
    ${EXAMPLES_DIR}/pythagorian/main.cpp
)
add_executable(pythagorian ${PYTHAGORIAN_SOURCES})
TARGET_LINK_LIBRARIES(pythagorian ${CMAKE_THREAD_LIBS_INIT})

# configure unit tests via CTest
enable_testing()

add_test(NAME RunTests COMMAND rxcppv2_test)

add_test(NAME ListTests COMMAND rxcppv2_test --list-tests)
set_tests_properties(ListTests PROPERTIES PASS_REGULAR_EXPRESSION "[0-9]+ test cases")

add_test(NAME ListTags COMMAND rxcppv2_test --list-tags)
set_tests_properties(ListTags PROPERTIES PASS_REGULAR_EXPRESSION "[0-9]+ tags")