git subrepo clone (merge) --branch=v3.6.1 https://github.com/nats-io/nats.c.git deps/nats.c
subrepo: subdir: "deps/nats.c" merged: "66cec7f" upstream: origin: "https://github.com/nats-io/nats.c.git" branch: "v3.6.1" commit: "66cec7f" git-subrepo: version: "0.4.6" commit: "b8b46501e"
This commit is contained in:
89
deps/nats.c/examples/CMakeLists.txt
vendored
Normal file
89
deps/nats.c/examples/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
if(NOT NATS_BUILD_EXAMPLES)
|
||||
return()
|
||||
endif()
|
||||
if(NOT NATS_BUILD_STATIC_EXAMPLES AND NOT NATS_BUILD_LIB_SHARED)
|
||||
MESSAGE(FATAL_ERROR
|
||||
"Building examples require shared library, or run CMake with -DNATS_BUILD_STATIC_EXAMPLES=ON")
|
||||
endif()
|
||||
|
||||
# We need this directory to build the examples
|
||||
include_directories(${PROJECT_SOURCE_DIR}/src)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/examples)
|
||||
|
||||
if(NATS_BUILD_LIBUV_EXAMPLE AND LIBUV_DIR)
|
||||
include_directories(${LIBUV_DIR}/include)
|
||||
endif()
|
||||
|
||||
if(NATS_BUILD_LIBEVENT_EXAMPLE AND LIBEVENT_DIR)
|
||||
include_directories(${LIBEVENT_DIR}/include)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(LIB_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
else()
|
||||
if(NATS_BUILD_STATIC_EXAMPLES)
|
||||
set(LIB_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
else()
|
||||
set(LIB_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Get all the .c files in the examples directory
|
||||
file(GLOB EXAMPLES_SOURCES RELATIVE ${PROJECT_SOURCE_DIR}/examples *.c)
|
||||
|
||||
if(NOT NATS_BUILD_STATIC_EXAMPLES)
|
||||
add_definitions(-Dnats_IMPORTS)
|
||||
endif()
|
||||
|
||||
# For each file...
|
||||
foreach(examples_src ${EXAMPLES_SOURCES})
|
||||
|
||||
# Remove the suffix so that it becomes the executable name
|
||||
string(REPLACE ".c" "" examplename ${examples_src})
|
||||
set(exampleexe "nats-${examplename}")
|
||||
|
||||
set(buildExample OFF)
|
||||
set(NATS_ASYNC_IO_LIB "")
|
||||
|
||||
if(examplename MATCHES "libuv")
|
||||
if(NATS_BUILD_LIBUV_EXAMPLE)
|
||||
set(buildExample ON)
|
||||
if(LIBUV_DIR)
|
||||
set(NATS_ASYNC_IO_LIB ${LIBUV_DIR}/lib/libuv${LIB_SUFFIX})
|
||||
else()
|
||||
set(NATS_ASYNC_IO_LIB uv)
|
||||
endif()
|
||||
endif()
|
||||
elseif(examplename MATCHES "libevent")
|
||||
if(NATS_BUILD_LIBEVENT_EXAMPLE)
|
||||
set(buildExample ON)
|
||||
if(LIBEVENT_DIR)
|
||||
if(WIN32)
|
||||
set(NATS_ASYNC_IO_LIB ${LIBEVENT_DIR}/lib/event${LIB_SUFFIX})
|
||||
else()
|
||||
set(NATS_ASYNC_IO_LIB ${LIBEVENT_DIR}/lib/libevent${LIB_SUFFIX} ${LIBEVENT_DIR}/lib/libevent_pthreads${LIB_SUFFIX})
|
||||
endif()
|
||||
else()
|
||||
set(NATS_ASYNC_IO_LIB event)
|
||||
if(UNIX)
|
||||
list(APPEND NATS_ASYNC_IO_LIB event_pthreads)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
set(buildExample ON)
|
||||
endif()
|
||||
|
||||
if(buildExample)
|
||||
# Build the executable
|
||||
add_executable(${exampleexe} ${PROJECT_SOURCE_DIR}/examples/${examples_src})
|
||||
|
||||
# Link
|
||||
if(NATS_BUILD_STATIC_EXAMPLES)
|
||||
target_link_libraries(${exampleexe} nats_static ${NATS_EXTRA_LIB} ${NATS_ASYNC_IO_LIB})
|
||||
else()
|
||||
target_link_libraries(${exampleexe} nats ${NATS_EXTRA_LIB} ${NATS_ASYNC_IO_LIB})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endforeach()
|
Reference in New Issue
Block a user