# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to you under the Apache License, Version # 2.0 (the "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # cmake_minimum_required (VERSION 2.8) project (etch-cpp-helloworld) IF (EXISTS "${CMAKE_SOURCE_DIR}/CMakeLists_local.txt") INCLUDE ("${CMAKE_SOURCE_DIR}/CMakeLists_local.txt" OPTIONAL) ENDIF() include (${CMAKE_TOOLCHAIN_FILE}) #====================================================================================# #Etch Home IF (NOT ETCH_HOME) MESSAGE(FATAL_ERROR "ETCH_HOME not set") ENDIF (NOT ETCH_HOME) SET(ETCH_CPP_HOME ${ETCH_HOME}/binding-cpp) SET(ETCH_CPP_INCLUDE_DIR ${ETCH_CPP_HOME}/include) SET(ETCH_CPP_LIBRARY_DIR ${ETCH_CPP_HOME}/lib) SET(ETCH_CPP_LIBRARY_DIR_PLATFORM_SPECIFIC ${ETCH_CPP_LIBRARY_DIR}/${TARGET_OS}_${TARGET_ARCH}/${CMAKE_BUILD_TYPE}) # set include dirs include_directories (${ETCH_CPP_INCLUDE_DIR}) include_directories (${PROJECT_SOURCE_DIR}/src/main/include) include_directories (${PROJECT_SOURCE_DIR}/target/generated-sources/cpp/include) link_directories(${ETCH_CPP_LIBRARY_DIR_PLATFORM_SPECIFIC}) #STATUS message(STATUS " ") message(STATUS "====================================================") message(STATUS "build target: ${CMAKE_BUILD_TYPE}") message(STATUS "using Etch home Dir: ${ETCH_HOME}") message(STATUS "using include dir: ${ETCH_CPP_INCLUDE_DIR}") message(STATUS "using library dir: ${ETCH_CPP_LIBRARY_DIR_PLATFORM_SPECIFIC}") #====================================================================================# # SERVER #====================================================================================# add_executable(etch-cpp-helloworld-server src/main/src/ImplHelloWorldServer.cpp src/main/src/MainHelloWorldListener.cpp target/generated-sources/cpp/src/HelloWorld.cpp target/generated-sources/cpp/src/HelloWorldClient.cpp target/generated-sources/cpp/src/HelloWorldServer.cpp target/generated-sources/cpp/src/BaseHelloWorldClient.cpp target/generated-sources/cpp/src/BaseHelloWorldServer.cpp target/generated-sources/cpp/src/HelloWorldHelper.cpp target/generated-sources/cpp/src/RemoteHelloWorld.cpp target/generated-sources/cpp/src/RemoteHelloWorldClient.cpp target/generated-sources/cpp/src/RemoteHelloWorldServer.cpp target/generated-sources/cpp/src/StubHelloWorld.cpp target/generated-sources/cpp/src/StubHelloWorldClient.cpp target/generated-sources/cpp/src/StubHelloWorldServer.cpp target/generated-sources/cpp/src/ValueFactoryHelloWorld.cpp ) IF (TARGET_OS STREQUAL "Linux") target_link_libraries(etch-cpp-helloworld-server etch Capu pthread rt) ELSEIF(TARGET_OS STREQUAL "Windows") target_link_libraries(etch-cpp-helloworld-server etch Capu) IF (BUILD_CHECK_MEMORY) add_definitions(-DBUILD_CHECK_MEMORY) include_directories (${VLD}/include) file (COPY ${VLD}/vld.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}) file (COPY ${VLD}/bin/Win32/dbghelp.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}) file (COPY ${VLD}/bin/Win32/Microsoft.DTfW.DHL.manifest DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}) file (COPY ${VLD}/bin/Win32/vld_x86.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}) target_link_libraries (etch-cpp-helloworld-server ${VLD}/lib/Win32/vld.lib) ENDIF (BUILD_CHECK_MEMORY) ELSEIF(TARGET_OS STREQUAL "QNX") target_link_libraries (etch-cpp-helloworld-server etch Capu c socket) ENDIF() set_target_properties(etch-cpp-helloworld-server PROPERTIES OUTPUT_NAME "helloworld-server") #====================================================================================# # CLIENT #====================================================================================# add_executable(etch-cpp-helloworld-client src/main/src/ImplHelloWorldClient.cpp src/main/src/MainHelloWorldClient.cpp target/generated-sources/cpp/src/HelloWorld.cpp target/generated-sources/cpp/src/HelloWorldClient.cpp target/generated-sources/cpp/src/HelloWorldServer.cpp target/generated-sources/cpp/src/BaseHelloWorldClient.cpp target/generated-sources/cpp/src/BaseHelloWorldServer.cpp target/generated-sources/cpp/src/HelloWorldHelper.cpp target/generated-sources/cpp/src/RemoteHelloWorld.cpp target/generated-sources/cpp/src/RemoteHelloWorldClient.cpp target/generated-sources/cpp/src/RemoteHelloWorldServer.cpp target/generated-sources/cpp/src/StubHelloWorld.cpp target/generated-sources/cpp/src/StubHelloWorldClient.cpp target/generated-sources/cpp/src/StubHelloWorldServer.cpp target/generated-sources/cpp/src/ValueFactoryHelloWorld.cpp ) IF (TARGET_OS STREQUAL "Linux") target_link_libraries(etch-cpp-helloworld-client etch Capu pthread rt) ELSEIF(TARGET_OS STREQUAL "Windows") target_link_libraries(etch-cpp-helloworld-client etch Capu ) IF (BUILD_CHECK_MEMORY) add_definitions(-DBUILD_CHECK_MEMORY) include_directories (${VLD}/include) file (COPY ${VLD}/vld.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}) file (COPY ${VLD}/bin/Win32/dbghelp.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}) file (COPY ${VLD}/bin/Win32/Microsoft.DTfW.DHL.manifest DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}) file (COPY ${VLD}/bin/Win32/vld_x86.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}) target_link_libraries (etch-cpp-helloworld-client ${VLD}/lib/Win32/vld.lib) ENDIF (BUILD_CHECK_MEMORY) ELSEIF(TARGET_OS STREQUAL "QNX") target_link_libraries (etch-cpp-helloworld-client etch Capu c socket) ENDIF() set_target_properties(etch-cpp-helloworld-client PROPERTIES OUTPUT_NAME "helloworld-client")