| # | |
| # 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.6) | |
| project (etch-c-helloworld) | |
| message(STATUS "using etch home ${ETCH_HOME}") | |
| #Etch Home | |
| IF (NOT ETCH_HOME) | |
| MESSAGE(FATAL_ERROR "ETCH_HOME not set") | |
| ENDIF (NOT ETCH_HOME) | |
| # Set definitions | |
| IF (UNIX) | |
| add_definitions(-D_GNU_SOURCE -D_REENTRANT -DLINUX=2 -D__LINUX__) | |
| ENDIF (UNIX) | |
| add_definitions(-D_UNICODE -DUNICODE) | |
| # ETCH library | |
| SET(ETCH ${ETCH_HOME}/binding-c) | |
| FIND_PATH(ETCH_INCLUDE_DIR etch.h ${ETCH}/include) | |
| FIND_LIBRARY(ETCH_LIBRARY NAMES etch.lib libetch.a PATHS ${ETCH}/lib) | |
| IF (ETCH_INCLUDE_DIR AND ETCH_LIBRARY) | |
| SET(ETCH_FOUND TRUE) | |
| ENDIF (ETCH_INCLUDE_DIR AND ETCH_LIBRARY) | |
| IF (NOT ETCH_FOUND) | |
| MESSAGE(FATAL_ERROR "Could not find libetch") | |
| ENDIF (NOT ETCH_FOUND) | |
| # APR library | |
| SET(APR ${ETCH_HOME}/binding-c/extern/apr) | |
| FIND_PATH(APR_INCLUDE_DIR apr.h ${APR}/include ${APR}/include/apr-1) | |
| FIND_LIBRARY(APR_LIBRARY NAMES libapr-1.lib libapr-1.so PATHS ${APR}/lib) | |
| IF (APR_INCLUDE_DIR AND APR_LIBRARY) | |
| SET(APR_FOUND TRUE) | |
| ENDIF (APR_INCLUDE_DIR AND APR_LIBRARY) | |
| IF (NOT APR_FOUND) | |
| MESSAGE(FATAL_ERROR "Could not find libapr") | |
| ENDIF (NOT APR_FOUND) | |
| # APR-ICONV library | |
| SET(APR ${ETCH_HOME}/binding-c/extern/apr) | |
| FIND_PATH(APR-ICONV_INCLUDE_DIR apr_iconv.h ${APR}/include ${APR}/include/apr-1) | |
| FIND_LIBRARY(APR-ICONV_LIBRARY NAMES libapriconv-1.lib libapriconv-1.so PATHS ${APR}/lib) | |
| IF (APR-ICONV_INCLUDE_DIR AND APR-ICONV_LIBRARY) | |
| SET(APR-ICONV_FOUND TRUE) | |
| ENDIF (APR-ICONV_INCLUDE_DIR AND APR-ICONV_LIBRARY) | |
| IF (NOT APR-ICONV_FOUND) | |
| MESSAGE(FATAL_ERROR "Could not find libapriconv") | |
| ENDIF (NOT APR-ICONV_FOUND) | |
| # set include dirs | |
| include_directories (${APR_INCLUDE_DIR}) | |
| include_directories (${APR-ICONV_INCLUDE_DIR}) | |
| include_directories (${ETCH_INCLUDE_DIR}) | |
| include_directories (${PROJECT_SOURCE_DIR}/src/main/c) | |
| include_directories (${PROJECT_SOURCE_DIR}/target/generated-sources/main/etch/c) | |
| add_executable(etch-c-helloworld-server | |
| src/main/c/helloworld_server_implx.c | |
| src/main/c/helloworld_server_impl.c | |
| src/main/c/helloworld_listener_main.c | |
| target/generated-sources/main/etch/c/helloworld_interface.c | |
| target/generated-sources/main/etch/c/helloworld_client.c | |
| target/generated-sources/main/etch/c/helloworld_server_stub.c | |
| target/generated-sources/main/etch/c/helloworld_helper.c | |
| target/generated-sources/main/etch/c/helloworld_client_stub.c | |
| target/generated-sources/main/etch/c/helloworld_remote_client.c | |
| target/generated-sources/main/etch/c/helloworld_remote_server.c | |
| target/generated-sources/main/etch/c/helloworld_server.c | |
| target/generated-sources/main/etch/c/helloworld_valufact.c | |
| target/generated-sources/main/etch/c/helloworld_remote.c | |
| ) | |
| add_executable(etch-c-helloworld-client | |
| src/main/c/helloworld_client_impl.c | |
| src/main/c/helloworld_client_implx.c | |
| src/main/c/helloworld_client_main.c | |
| target/generated-sources/main/etch/c/helloworld_interface.c | |
| target/generated-sources/main/etch/c/helloworld_client.c | |
| target/generated-sources/main/etch/c/helloworld_server_stub.c | |
| target/generated-sources/main/etch/c/helloworld_helper.c | |
| target/generated-sources/main/etch/c/helloworld_client_stub.c | |
| target/generated-sources/main/etch/c/helloworld_remote_client.c | |
| target/generated-sources/main/etch/c/helloworld_remote_server.c | |
| target/generated-sources/main/etch/c/helloworld_server.c | |
| target/generated-sources/main/etch/c/helloworld_valufact.c | |
| target/generated-sources/main/etch/c/helloworld_remote.c | |
| ) | |
| target_link_libraries(etch-c-helloworld-server "${APR_LIBRARY}") | |
| target_link_libraries(etch-c-helloworld-server "${APR-ICONV_LIBRARY}") | |
| target_link_libraries(etch-c-helloworld-server "${ETCH_LIBRARY}") | |
| IF (UNIX) | |
| set_target_properties(etch-c-helloworld-server PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") | |
| ENDIF (UNIX) | |
| set_target_properties(etch-c-helloworld-server PROPERTIES OUTPUT_NAME "helloworld-server") | |
| target_link_libraries(etch-c-helloworld-client "${APR_LIBRARY}") | |
| target_link_libraries(etch-c-helloworld-client "${APR-ICONV_LIBRARY}") | |
| target_link_libraries(etch-c-helloworld-client "${ETCH_LIBRARY}") | |
| IF (UNIX) | |
| set_target_properties(etch-c-helloworld-client PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") | |
| ENDIF (UNIX) | |
| set_target_properties(etch-c-helloworld-client PROPERTIES OUTPUT_NAME "helloworld-client") |