# # 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()