blob: 2fb6e436afb3c843801f6a15f8f4fb4e94339fd9 [file] [log] [blame]
#
# 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.
#
# set include dirs
include_directories (${PROJECT_SOURCE_DIR}/include)
include_directories (${LIBCAPU_INCLUDE_DIR})
#Add header files
SET(MAIN_INCLUDES
${PROJECT_SOURCE_DIR}/include/common/EtchObject.h
${PROJECT_SOURCE_DIR}/include/common/EtchObjectType.h
${PROJECT_SOURCE_DIR}/include/common/EtchString.h
${PROJECT_SOURCE_DIR}/include/common/EtchNumber.h
${PROJECT_SOURCE_DIR}/include/common/EtchInt32.h
${PROJECT_SOURCE_DIR}/include/common/EtchBool.h
${PROJECT_SOURCE_DIR}/include/common/EtchByte.h
${PROJECT_SOURCE_DIR}/include/common/EtchShort.h
${PROJECT_SOURCE_DIR}/include/common/EtchLong.h
${PROJECT_SOURCE_DIR}/include/common/EtchFloat.h
${PROJECT_SOURCE_DIR}/include/common/EtchDouble.h
${PROJECT_SOURCE_DIR}/include/common/EtchComparator.h
${PROJECT_SOURCE_DIR}/include/common/EtchComparatorNative.h
${PROJECT_SOURCE_DIR}/include/common/EtchConfig.h
${PROJECT_SOURCE_DIR}/include/common/EtchError.h
${PROJECT_SOURCE_DIR}/include/common/EtchObjectHash.h
${PROJECT_SOURCE_DIR}/include/common/EtchHashNative.h
${PROJECT_SOURCE_DIR}/include/common/EtchHashTable.h
${PROJECT_SOURCE_DIR}/include/common/EtchHashSet.h
${PROJECT_SOURCE_DIR}/include/common/EtchList.h
${PROJECT_SOURCE_DIR}/include/common/EtchNativeArray.h
${PROJECT_SOURCE_DIR}/include/common/EtchSocket.h
${PROJECT_SOURCE_DIR}/include/common/EtchServerSocket.h
${PROJECT_SOURCE_DIR}/include/util/EtchURL.h
${PROJECT_SOURCE_DIR}/include/util/EtchResources.h
${PROJECT_SOURCE_DIR}/include/util/EtchHash.h
${PROJECT_SOURCE_DIR}/include/transport/EtchFlexBuffer.h
${PROJECT_SOURCE_DIR}/include/transport/EtchSession.h
${PROJECT_SOURCE_DIR}/include/transport/EtchSessionData.h
${PROJECT_SOURCE_DIR}/include/transport/EtchSessionListener.h
${PROJECT_SOURCE_DIR}/include/transport/EtchSessionMessage.h
${PROJECT_SOURCE_DIR}/include/transport/EtchSessionPacket.h
${PROJECT_SOURCE_DIR}/include/transport/EtchWho.h
${PROJECT_SOURCE_DIR}/include/transport/EtchConnection.h
${PROJECT_SOURCE_DIR}/include/transport/EtchTransport.h
${PROJECT_SOURCE_DIR}/include/transport/EtchTransportData.h
${PROJECT_SOURCE_DIR}/include/transport/EtchTransportMessage.h
${PROJECT_SOURCE_DIR}/include/transport/EtchTransportPacket.h
${PROJECT_SOURCE_DIR}/include/transport/EtchTransportFactory.h
${PROJECT_SOURCE_DIR}/include/transport/EtchMessagizer.h
${PROJECT_SOURCE_DIR}/include/transport/EtchFormat.h
${PROJECT_SOURCE_DIR}/include/transport/EtchTcpTransportFactory.h
${PROJECT_SOURCE_DIR}/include/common/EtchTypes.h
${PROJECT_SOURCE_DIR}/include/common/EtchException.h
${PROJECT_SOURCE_DIR}/include/common/EtchAuthenticationException.h
${PROJECT_SOURCE_DIR}/include/common/EtchRuntimeException.h
${PROJECT_SOURCE_DIR}/include/common/EtchDate.h
${PROJECT_SOURCE_DIR}/include/common/EtchArrayValue.h
${PROJECT_SOURCE_DIR}/include/transport/EtchDefaultDeliveryService.h
${PROJECT_SOURCE_DIR}/include/transport/EtchTcpConnection.h
${PROJECT_SOURCE_DIR}/include/transport/EtchTcpListener.h
${PROJECT_SOURCE_DIR}/include/transport/EtchTcpOption.h
${PROJECT_SOURCE_DIR}/include/transport/EtchPacketizer.h
${PROJECT_SOURCE_DIR}/include/transport/EtchMessage.h
${PROJECT_SOURCE_DIR}/include/transport/EtchMailboxManager.h
${PROJECT_SOURCE_DIR}/include/transport/EtchPlainMailboxManager.h
${PROJECT_SOURCE_DIR}/include/transport/EtchWho.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidator.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchAsyncMode.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchDirection.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchTypeValidator.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchTypeCodes.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorBoolean.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorByte.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorInt.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorShort.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorFloat.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorDouble.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorLong.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorString.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorNone.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorCustom.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchComboValidator.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchField.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorObject.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchFieldMap.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValueFactory.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchImportExportHelper.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchType.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchStructValue.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchTypeMap.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchClass2TypeMap.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchListSerializer.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorRuntimeException.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchRuntimeExceptionSerializer.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchAuthenticationExceptionSerializer.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchHashTableSerializer.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchSetSerializer.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchDateSerializer.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchDefaultValueFactory.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidatorStructValue.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchTaggedData.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchBinaryTaggedData.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchBinaryTaggedDataInput.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchBinaryTaggedDataOutput.h
${PROJECT_SOURCE_DIR}/include/serialization/EtchValidators.h
${PROJECT_SOURCE_DIR}/include/support/EtchRuntime.h
${PROJECT_SOURCE_DIR}/include/support/EtchAsyncResultNone.h
${PROJECT_SOURCE_DIR}/include/support/EtchAsyncResult.h
${PROJECT_SOURCE_DIR}/include/support/EtchDefaultServerFactory.h
${PROJECT_SOURCE_DIR}/include/support/EtchDeliveryService.h
${PROJECT_SOURCE_DIR}/include/support/EtchMailbox.h
${PROJECT_SOURCE_DIR}/include/support/EtchObjectSession.h
${PROJECT_SOURCE_DIR}/include/support/EtchPool.h
${PROJECT_SOURCE_DIR}/include/support/EtchPoolRunnable.h
${PROJECT_SOURCE_DIR}/include/support/EtchFreePool.h
${PROJECT_SOURCE_DIR}/include/support/EtchQueuedPool.h
${PROJECT_SOURCE_DIR}/include/support/EtchRemoteBase.h
${PROJECT_SOURCE_DIR}/include/support/EtchServerFactory.h
${PROJECT_SOURCE_DIR}/include/support/EtchStubHelper.h
${PROJECT_SOURCE_DIR}/include/support/EtchStubBase.h
${PROJECT_SOURCE_DIR}/include/support/EtchTransportHelper.h
${PROJECT_SOURCE_DIR}/include/support/EtchPlainMailbox.h
${PROJECT_SOURCE_DIR}/include/support/EtchMonitor.h
${PROJECT_SOURCE_DIR}/include/support/EtchStack.h
${PROJECT_SOURCE_DIR}/include/support/EtchStackClient.h
${PROJECT_SOURCE_DIR}/include/support/EtchStackServer.h
${PROJECT_SOURCE_DIR}/include/support/EtchRuntime.h
${PROJECT_SOURCE_DIR}/include/util/EtchUtil.h
${PROJECT_SOURCE_DIR}/include/util/EtchCircularQueue.h
${PROJECT_SOURCE_DIR}/include/util/EtchIdGenerator.h
${PROJECT_SOURCE_DIR}/include/util/EtchExceptionFactory.h
)
#Add cpp files
SET(MAIN_SOURCES
common/EtchObject.cpp
common/EtchObjectType.cpp
common/EtchString.cpp
common/EtchInt32.cpp
common/EtchBool.cpp
common/EtchByte.cpp
common/EtchShort.cpp
common/EtchLong.cpp
common/EtchFloat.cpp
common/EtchDouble.cpp
common/EtchSocket.cpp
common/EtchServerSocket.cpp
common/EtchException.cpp
common/EtchAuthenticationException.cpp
common/EtchRuntimeException.cpp
common/EtchDate.cpp
common/EtchNativeArray.cpp
common/EtchArrayValue.cpp
util/EtchURL.cpp
util/EtchResources.cpp
util/EtchUtil.cpp
transport/EtchFlexBuffer.cpp
transport/EtchSession.cpp
transport/EtchDefaultDeliveryService.cpp
transport/EtchTcpConnection.cpp
transport/EtchTcpListener.cpp
transport/EtchTcpOption.cpp
transport/EtchPacketizer.cpp
transport/EtchMessage.cpp
transport/EtchMessagizer.cpp
transport/EtchFormat.cpp
transport/EtchPlainMailboxManager.cpp
transport/EtchTransportFactory.cpp
transport/EtchTcpTransportFactory.cpp
transport/EtchWho.cpp
serialization/EtchTypeValidator.cpp
serialization/EtchValidatorBoolean.cpp
serialization/EtchValidatorByte.cpp
serialization/EtchValidatorInt.cpp
serialization/EtchValidatorShort.cpp
serialization/EtchValidatorFloat.cpp
serialization/EtchValidatorDouble.cpp
serialization/EtchValidatorLong.cpp
serialization/EtchValidatorString.cpp
serialization/EtchValidatorNone.cpp
serialization/EtchValidatorCustom.cpp
serialization/EtchComboValidator.cpp
serialization/EtchField.cpp
serialization/EtchValidatorObject.cpp
serialization/EtchFieldMap.cpp
serialization/EtchValueFactory.cpp
serialization/EtchType.cpp
serialization/EtchStructValue.cpp
serialization/EtchTypeMap.cpp
serialization/EtchClass2TypeMap.cpp
serialization/EtchListSerializer.cpp
serialization/EtchValidatorRuntimeException.cpp
serialization/EtchRuntimeExceptionSerializer.cpp
serialization/EtchAuthenticationExceptionSerializer.cpp
serialization/EtchHashTableSerializer.cpp
serialization/EtchSetSerializer.cpp
serialization/EtchDateSerializer.cpp
serialization/EtchDefaultValueFactory.cpp
serialization/EtchValidatorStructValue.cpp
serialization/EtchTaggedData.cpp
serialization/EtchBinaryTaggedData.cpp
serialization/EtchBinaryTaggedDataInput.cpp
serialization/EtchBinaryTaggedDataOutput.cpp
support/EtchPlainMailbox.cpp
support/EtchPool.cpp
support/EtchFreePool.cpp
support/EtchQueuedPool.cpp
support/EtchDefaultServerFactory.cpp
support/EtchRemoteBase.cpp
support/EtchTransportHelper.cpp
support/EtchMonitor.cpp
support/EtchRuntime.cpp
support/EtchStack.cpp
support/EtchStackClient.cpp
support/EtchStackServer.cpp
support/EtchAsyncResultNone.cpp
util/EtchCircularQueue.cpp
util/EtchUtil.cpp
util/EtchIdGenerator.cpp
)
#Add source and header files to library so they are visible in the different IDEs (Visual Studio and Eclipse)
add_library (etch-cpp STATIC
${MAIN_SOURCES}
${MAIN_INCLUDES}
)
set_target_properties (etch-cpp PROPERTIES OUTPUT_NAME "etch")
add_dependencies (etch-cpp Capu_external)
#install etch headers and library
INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/include DESTINATION "${ETCH_INSTALL_DIR}")
INSTALL(TARGETS etch-cpp DESTINATION "${ETCH_INSTALL_DIR}/lib/${ETCH_TARGET_PLATFORM}/${CMAKE_BUILD_TYPE}")
#copy more files on windows (*.pdb)
IF(IS_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})
INSTALL(DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE} DESTINATION "${ETCH_INSTALL_DIR}/lib/${ETCH_TARGET_PLATFORM}")
ELSE()
ENDIF()