Skip to content

Commit abda46c

Browse files
author
Marcos Bracco
committed
Merge branch 'mb_travis2' into develop
2 parents 84b74a9 + 7372fb5 commit abda46c

File tree

6 files changed

+145
-77
lines changed

6 files changed

+145
-77
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@
44
*.cmd text eol=crlf
55
*.sln text eol=crlf
66
*.vcproj text eol=crlf
7+
*.vcxproj text eol=crlf
8+

.travis.yml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
language: cpp
2+
os: linux
3+
dist: bionic
4+
script:
5+
- mkdir build
6+
- cd build
7+
- cmake -DCMAKE_BUILD_TYPE=Release ..
8+
- cmake --build .
9+
- ctest --output-on-failure -E foundation
10+
notifications:
11+
email:
12+
if: branch = master OR branch = develop
13+
jobs:
14+
include:
15+
- name: Linux GCC
16+
compiler: gcc
17+
- name: Windows MSVC
18+
os: windows
19+
script:
20+
- mkdir build
21+
- cd build
22+
- cmake -G "Visual Studio 15 2017 Win64" ..
23+
- cmake --build . --config Release
24+
- ctest -C Release --output-on-failure
25+
- name: macOS Clang
26+
os: osx
27+
compiler: clang
28+
- name: Linux Clang
29+
compiler: clang
30+
- name: Windows Clang
31+
os: windows
32+
install: choco install ninja
33+
script: ./safe_memory/library/src/iibmalloc/src/foundation/tools/travis-windows-clang.bat
34+
- name: Linux GCC (checker)
35+
compiler: gcc
36+
cache: ccache
37+
script:
38+
- cd safe_memory
39+
- ./checker/tools/travis-ccache.sh
40+
- name: macOS Clang (checker)
41+
os: osx
42+
compiler: clang
43+
cache: ccache
44+
install: brew install ccache
45+
script:
46+
- cd safe_memory
47+
- ./checker/tools/travis-ccache.sh
48+
- name: Windows MSVC (checker)
49+
os: windows
50+
env: CC=cl CXX=cl
51+
install:
52+
- choco install ninja
53+
- choco install sccache --version=0.2.12
54+
cache:
55+
directories:
56+
- $HOME/AppData/Local/Temp/chocolatey
57+
- $HOME/AppData/Local/Mozilla/sccache
58+
script:
59+
- cd safe_memory
60+
- ./checker/tools/travis-windows.bat
61+
62+
allow_failures:
63+
- name: Linux GCC
64+
- name: Linux Clang
65+
- name: macOS Clang
66+
- name: Windows Clang
67+
- name: Linux GCC (checker)
68+
- name: macOS Clang (checker)
69+
- name: Windows MSVC (checker)

CMakeLists.txt

Lines changed: 70 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,73 @@
1+
#-------------------------------------------------------------------------------------------
2+
# Copyright (c) 2020, OLogN Technologies AG
3+
#-------------------------------------------------------------------------------------------
4+
15
cmake_minimum_required(VERSION 3.4)
2-
project(node_cpp)
6+
project(NodeDotCpp CXX)
7+
8+
#find_package(Threads)
9+
10+
include(CTest)
11+
12+
set (CMAKE_MODULE_PATH
13+
"${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/safe_memory/library/src/iibmalloc/src/foundation/tools")
14+
include(CommonCppFlags)
15+
16+
17+
18+
add_subdirectory(safe_memory)
19+
20+
21+
add_library(nodecpp_no_main STATIC
22+
src/infrastructure.cpp
23+
src/net.cpp
24+
# src/timers.cpp
25+
# src/clustering_impl/clustering.cpp
26+
# src/logging_impl/logging.cpp
27+
# src/tcp_socket/listener_thread.cpp
28+
src/tcp_socket/tcp_socket.cpp
29+
)
30+
31+
# just in case some project needs a different main
32+
target_include_directories(nodecpp_no_main
33+
PUBLIC include
34+
)
35+
36+
add_library(nodecpp STATIC
37+
src/infra_main.cpp
38+
)
39+
40+
41+
target_link_libraries(nodecpp_no_main SafeMemory)
42+
target_link_libraries(nodecpp nodecpp_no_main)
43+
44+
if(MSVC)
45+
target_compile_options(nodecpp_no_main PUBLIC /await)
46+
else()
47+
target_compile_definitions(nodecpp_no_main PUBLIC USING_T_SOCKETS)
48+
endif()
49+
50+
51+
352

4-
find_package(Threads)
53+
add_executable(client
54+
test/samples/client/user_code/NetSocket.cpp
55+
)
556

6-
set(CLIENT_NAME client.bin)
7-
#set(CTRL_CLIENT_NAME ctrl_client.bin)
8-
set(SERVER_NAME server.bin)
9-
set(LIB_NAME gcc_lto_workaround)
57+
target_link_libraries(client nodecpp)
1058

11-
set(SOURCE_EXE ${PROJECT_SOURCE_DIR}/src/infra_main.cpp
12-
${PROJECT_SOURCE_DIR}/src/net.cpp
13-
${PROJECT_SOURCE_DIR}/src/infrastructure.cpp
14-
${PROJECT_SOURCE_DIR}/src/tcp_socket/tcp_socket.cpp )
59+
add_executable(server
60+
test/samples/server/user_code/NetSocket.cpp
61+
)
1562

16-
set(CLIENT_SOURCE_EXE ${PROJECT_SOURCE_DIR}/test/samples/client/user_code/NetSocket.cpp)
17-
#set(CTRL_CLIENT_SOURCE_EXE ${PROJECT_SOURCE_DIR}/test/samples/ctrl_client/user_code/NetSocket.cpp)
18-
set(SERVER_SOURCE_EXE ${PROJECT_SOURCE_DIR}/test/samples/server/user_code/NetSocket.cpp)
63+
target_link_libraries(server nodecpp)
1964

20-
set(SOURCE_LIB ${PROJECT_SOURCE_DIR}/safe_memory/library/gcc_lto_workaround/gcc_lto_workaround.cpp)
65+
add_executable(ctrl_client
66+
test/samples/ctrl_client/user_code/NetSocket.cpp
67+
)
2168

22-
add_subdirectory(${PROJECT_SOURCE_DIR}/safe_memory/library/src/iibmalloc build)
69+
target_link_libraries(ctrl_client nodecpp)
2370

24-
include_directories(include ${PROJECT_SOURCE_DIR}/safe_memory/library/src/iibmalloc/src/foundation/3rdparty/fmt/include
25-
${PROJECT_SOURCE_DIR}/safe_memory/library/src/iibmalloc/src/foundation/include
26-
${PROJECT_SOURCE_DIR}/safe_memory/library/src/iibmalloc/src
27-
${PROJECT_SOURCE_DIR}/safe_memory/library/src
28-
${PROJECT_SOURCE_DIR}/include/nodecpp
29-
${PROJECT_SOURCE_DIR}/include
30-
${PROJECT_SOURCE_DIR}/src )
3171

3272
set(DZ_INCLUDES -isystem ${PROJECT_SOURCE_DIR}/safe_memory/library/src/iibmalloc/src/foundation/3rdparty/fmt/include
3373
-isystem ${PROJECT_SOURCE_DIR}/safe_memory/library/src/iibmalloc/src/foundation/include
@@ -41,50 +81,6 @@ set(DZ_INCLUDES -isystem ${PROJECT_SOURCE_DIR}/safe_memory/library/src/iibmalloc
4181
set(DZ_DEFINES -DNDEBUG -DUSING_T_SOCKETS)
4282

4383

44-
if(MSVC OR MSYS OR MINGW)
45-
option(CMAKE_USE_WIN32_THREADS_INIT "using WIN32 threads" ON)
46-
add_definitions(/W3)
47-
add_definitions(/EHa)
48-
add_definitions(/MD)
49-
add_definitions(/await)
50-
else()
51-
enable_testing()
52-
add_definitions( -g )
53-
add_definitions( -Wall )
54-
add_definitions( -Wextra )
55-
add_definitions( -Wno-unused-variable )
56-
add_definitions( -Wno-unused-parameter )
57-
add_definitions( -Wno-empty-body )
58-
add_definitions(-lpthread)
59-
add_compile_options(-O2)
60-
set(CMAKE_CXX_STANDARD_REQUIRED on)
61-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAG} -DNDEBUG -DUSING_T_SOCKETS ")
62-
endif()
63-
64-
set(CMAKE_CXX_STANDARD 17)
65-
66-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/build/lib)
67-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/build/lib)
68-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/build/bin)
69-
70-
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
71-
add_library( ${LIB_NAME} SHARED ${SOURCE_LIB})
72-
else()
73-
unset(LIB_NAME)
74-
endif()
75-
76-
add_library( ${LIB_NAME} SHARED ${SOURCE_LIB})
77-
add_executable(${CLIENT_NAME} ${SOURCE_EXE} ${CLIENT_SOURCE_EXE})
78-
#add_executable(${CTRL_CLIENT_NAME} ${SOURCE_EXE} ${CTRL_CLIENT_SOURCE_EXE})
79-
add_executable(${SERVER_NAME} ${SOURCE_EXE} ${SERVER_SOURCE_EXE})
80-
81-
if(MSVC)
82-
target_link_libraries( ${CLIENT_NAME} iibmalloc ${LIB_NAME})
83-
target_link_libraries( ${SERVER_NAME} iibmalloc ${LIB_NAME})
84-
else()
85-
target_link_libraries( ${CLIENT_NAME} iibmalloc ${LIB_NAME} pthread)
86-
target_link_libraries( ${SERVER_NAME} iibmalloc ${LIB_NAME} pthread)
87-
endif()
8884

8985

9086
# -----------------------------------------------------------------------------
@@ -115,19 +111,19 @@ function(make_dz_files OUT_VAR LIST1 LIST2)
115111
endfunction()
116112

117113

118-
make_dz_files(DZ_CLIENT_FILES SOURCE_EXE CLIENT_SOURCE_EXE)
114+
#make_dz_files(DZ_CLIENT_FILES SOURCE_EXE CLIENT_SOURCE_EXE)
119115

120-
add_executable(dz-client.bin ${DZ_CLIENT_FILES})
116+
#add_executable(dz-client.bin ${DZ_CLIENT_FILES})
121117

122-
make_dz_files(DZ_SERVER_FILES SOURCE_EXE SERVER_SOURCE_EXE)
118+
#make_dz_files(DZ_SERVER_FILES SOURCE_EXE SERVER_SOURCE_EXE)
123119

124-
add_executable(dz-server.bin ${DZ_SERVER_FILES})
120+
#add_executable(dz-server.bin ${DZ_SERVER_FILES})
125121

126122

127123
if(MSVC)
128-
target_link_libraries( dz-client.bin iibmalloc ${LIB_NAME})
129-
target_link_libraries( dz-server.bin iibmalloc ${LIB_NAME})
124+
# target_link_libraries( dz-client.bin iibmalloc ${LIB_NAME})
125+
# target_link_libraries( dz-server.bin iibmalloc ${LIB_NAME})
130126
else()
131-
target_link_libraries( dz-client.bin iibmalloc ${LIB_NAME} pthread)
132-
target_link_libraries( dz-server.bin iibmalloc ${LIB_NAME} pthread)
127+
# target_link_libraries( dz-client.bin iibmalloc ${LIB_NAME} pthread)
128+
# target_link_libraries( dz-server.bin iibmalloc ${LIB_NAME} pthread)
133129
endif()

include/nodecpp/event.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,8 +272,8 @@ namespace nodecpp
272272
#ifndef NODECPP_MSVC_BUG_379712_WORKAROUND_NO_LISTENER
273273
NODECPP_ASSERT( nodecpp::module_id, ::nodecpp::assert::AssertLevel::critical, current.listener );
274274
// current.listener->*onMyEvent(args...);
275-
auto ptr = current.listener.get().get_dereferencable();
276-
(ptr->*onMyEvent)(args...);
275+
auto& ptr = *(current.listener.get());
276+
(ptr.*onMyEvent)(args...);
277277
#else
278278
NODECPP_ASSERT( nodecpp::module_id, ::nodecpp::assert::AssertLevel::critical, false );
279279
#endif

include/nodecpp/net_common.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include <map>
3535
#include <typeinfo>
3636
#include <typeindex>
37+
#include <cassert>
3738

3839
namespace nodecpp {
3940

safe_memory

0 commit comments

Comments
 (0)