@@ -6,9 +6,9 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
66set (CMAKE_CXX_STANDARD 11)
77set (CMAKE_CXX_EXTENSIONS OFF )
88
9- option (USE_OPENSSL "Use OpenSSL for encrypted communication" ON )
10- option (USE_AERON "Use Aeron for UDP connection " ON )
11- option (USE_CXX11_ABI "Gcc Use C++11 ABI" ON )
9+ option (USE_OPENSSL "Use OpenSSL for encrypted communication. " ON )
10+ option (USE_AERON "Use Aeron for UDP connections. ${CMAKE_PROJECT_NAME} will search for Aeron in $ \{ CMAKE_INSTALL_PREFIX \} by default, you can specify a different location with AERON_INSTALL_DIR " ON )
11+ option (WITH_GTEST "Compile testcases." OFF )
1212
1313add_library (${CMAKE_PROJECT_NAME} SHARED)
1414
@@ -21,7 +21,7 @@ endif()
2121
2222if (USE_AERON)
2323 if (NOT DEFINED AERON_INSTALL_DIR)
24- set (AERON_INSTALL_DIR "/usr/local" )
24+ set (AERON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX} )
2525 endif ()
2626 set (AERON_INCLUDE_DIR
2727 "${AERON_INSTALL_DIR} /include/wrapper"
@@ -37,10 +37,6 @@ if (USE_AERON)
3737 target_compile_definitions (${CMAKE_PROJECT_NAME} PRIVATE USE_AERON)
3838endif ()
3939
40- if (NOT USE_CXX11_ABI)
41- target_compile_definitions (${CMAKE_PROJECT_NAME} PRIVATE _GLIBCXX_USE_CXX11_ABI=0)
42- endif ()
43-
4440target_include_directories (${CMAKE_PROJECT_NAME}
4541 PRIVATE ${OPENSSL_INCLUDE_DIR}
4642 PRIVATE BEFORE ${AERON_INCLUDE_DIR} # make sure we include C warpper before deprecated C++ API
@@ -52,14 +48,10 @@ target_link_libraries(${CMAKE_PROJECT_NAME}
5248)
5349
5450if (WIN32 )
55- target_compile_definitions (${CMAKE_PROJECT_NAME}
56- PRIVATE WINDOWS NOMINMAX _DDBAPIDLL
57- )
51+ target_compile_definitions (${CMAKE_PROJECT_NAME} PRIVATE NOMINMAX _DDBAPIDLL)
5852 target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE ws2_32)
5953 if (MINGW)
60- target_compile_definitions (${CMAKE_PROJECT_NAME}
61- PRIVATE _WIN32_WINNT=0x0600
62- )
54+ target_compile_definitions (${CMAKE_PROJECT_NAME} PRIVATE _WIN32_WINNT=0x0600)
6355 endif ()
6456else ()
6557 target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE pthread rt uuid)
@@ -69,14 +61,17 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
6961 # C4251: Class member of an exported class is not marked dllexport.
7062 # This is triggered by std::string but we cannot modify STL.
7163 # C4100: Parameter is unused. We should fix this later.
72- target_compile_options (${CMAKE_PROJECT_NAME} PRIVATE /W3 /WX / MP /wd4251 /wd4100)
64+ target_compile_options (${CMAKE_PROJECT_NAME} PRIVATE /W3 /MP /wd4251 /wd4100)
7365else ()
7466 # overloaded-virtual: Derived class hides base class virtual functions
7567 # This is triggered by derived classes of Constant and we will fix this later
76- target_compile_options (${CMAKE_PROJECT_NAME} PRIVATE -Wall -Werror - Wno-overloaded-virtual)
68+ target_compile_options (${CMAKE_PROJECT_NAME} PRIVATE -Wall -Wno-overloaded-virtual)
7769endif ()
7870
79- if (USE_CXX11_ABI AND EXISTS "${PROJECT_SOURCE_DIR} /thirdparty/googletest/CMakeLists.txt" )
71+ if (WITH_GTEST)
72+ if (NOT USE_CXX11_ABI)
73+ message (FATAL_ERROR "cannot compile testcases without C++11 ABI" )
74+ endif ()
8075 add_executable (${CMAKE_PROJECT_NAME} _test)
8176 add_subdirectory (test )
8277
@@ -97,6 +92,4 @@ if (USE_CXX11_ABI AND EXISTS "${PROJECT_SOURCE_DIR}/thirdparty/googletest/CMakeL
9792 gtest_main
9893 gmock_main
9994 )
100- else ()
101- message ("skipping tests." )
10295endif ()
0 commit comments