cmake_minimum_required(VERSION 3.5) # ========== Main Project Settings =============== project(OldDeviceUsbAdapter LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17 /bigobj") elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") endif() # ========= Compile Definitions =================== add_compile_definitions(DEVICE_ALLMETER) #add_compile_definitions(DEVICE_CARDIOGRAPH) # for libwebsockets add_compile_definitions(_WEBSOCKETPP_CPP11_TYPE_TRAITS_) if(WIN32) add_compile_definitions(WIN_COMPILER) elseif(UNIX) add_compile_definitions(UNIX_COMPILER) endif() add_compile_definitions(PROJECT_PATH="${CMAKE_CURRENT_SOURCE_DIR}") add_compile_definitions(HARD_EMULATION) # ========= Set Variables =========== set(PROJECT_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) set(PROJECT_DIR_PATH ${CMAKE_CURRENT_SOURCE_DIR}) set(PROJECT_INCLUDE_DIR_PATH ${CMAKE_CURRENT_SOURCE_DIR}/include) set(PROJECT_SRC_DIR_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src) set(PROJECT_LIB_DIR_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib) set(OUTDIR_PATH ${PROJECT_ROOT_PATH}/build/${CMAKE_PROJECT_NAME}) set(DESTDIR_PATH ${OUTDIR_PATH}/${CMAKE_BUILD_TYPE}) #set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${DESTDIR_PATH}) if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${DESTDIR_PATH}) elseif(CMAKE_BUILD_TYPE STREQUAL "Release") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${DESTDIR_PATH}) endif() set(DATA_DIR_SRC_PATH ${PROJECT_ROOT_PATH}/Data) set(GUI_DIR_SRC_PATH ${PROJECT_ROOT_PATH}/Visualizator) set(VIS_START_DIR_SRC_PATH ${GUI_DIR_SRC_PATH}/vis-launcher/dist) set(VIS_START_DIR_PUBLIC_PATH ${GUI_DIR_SRC_PATH}/vis-launcher/public) set(PROJECT_RESOURCES_DIR_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/resources) set(DATA_DIR_DEST_PATH ${DESTDIR_PATH}/Data) set(GUI_DIR_DEST_PATH ${DESTDIR_PATH}/Visualizator) set(VIS_START_DIR_DEST_PATH ${GUI_DIR_DEST_PATH}/vis-launcher/dist) set(PROJECT_RESOURCES_DIR_DEST_PATH ${DESTDIR_PATH}/resources) file(READ "settings.json" WEB_DEVICE_SETTINGS_JSON) string(REGEX MATCH "\"version\": \"([0-9.]*)\"," _ ${WEB_DEVICE_SETTINGS_JSON}) set(WEBDEVICE_ADAPTER_VERSION ${CMAKE_MATCH_1}) file(READ "version.txt" WEBDEVICE_VERSION) file(READ ${VIS_START_DIR_PUBLIC_PATH}/version.txt WEBDEVICE_FRONTEND_VERSION) message(WEBDEVICE_VERSION="${WEBDEVICE_VERSION}") message(WEBDEVICE_FRONTEND_VERSION="${WEBDEVICE_FRONTEND_VERSION}") message(VIS_START_DIR_PUBLIC_PATH="${VIS_START_DIR_PUBLIC_PATH}") configure_file(version.h.in version.h @ONLY) set(CMAKE_PROJECT_VERSION ${WEBDEVICE_ADAPTER_VERSION}) # =========== Include Directories ========= include_directories(${PROJECT_INCLUDE_DIR_PATH} ${PROJECT_LIB_DIR_PATH}/asio ${PROJECT_LIB_DIR_PATH}/libwebsockets ${PROJECT_LIB_DIR_PATH}/libusb-1.0.24/include ${PROJECT_LIB_DIR_PATH}/nlohmann-json-3.11.2/include ${PROJECT_LIB_DIR_PATH}/MsgPack ${PROJECT_LIB_DIR_PATH} ) # =========== Project Headers ========= set(PROJECT_HEADERS ${PROJECT_INCLUDE_DIR_PATH}/Utils/IdGenerator.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/SyncIdGenerator.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/StringTrimmer.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/StringSplitter.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/StringComparer.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/ILogger.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/MockLogger.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/ConsoleLogger.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/FunctionDefines.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/IDataEmitter.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/IHandlerResult.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/HandlerOKResult.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/HandlerErrorResult.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/IHandlerAnswer.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/HandlerValueAnswer.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/HandlerObjectAnswer.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/HandlerEmptyAnswer.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/TimeConverter.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/Hash.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/Crc16.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/SysRoundBuffer.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/FileProvider.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/Data/IData.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/Data/NamedData.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/Data/RefData.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/Data/ValueData.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/Data/NamedRefData.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/Data/NamedValueData.h ${PROJECT_INCLUDE_DIR_PATH}/Utils/Data/NamedDataList.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Uri.h ${PROJECT_INCLUDE_DIR_PATH}/Network/WebHostInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Network/MessageSender.h ${PROJECT_INCLUDE_DIR_PATH}/Network/TextMessageSender.h ${PROJECT_INCLUDE_DIR_PATH}/Network/BinaryMessageSender.h ${PROJECT_INCLUDE_DIR_PATH}/Network/MessageReceiver.h ${PROJECT_INCLUDE_DIR_PATH}/Network/TextMessageReceiver.h ${PROJECT_INCLUDE_DIR_PATH}/Network/BinaryMessageReceiver.h ${PROJECT_INCLUDE_DIR_PATH}/Network/AsioDelayTimer.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpHeader.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpPacket.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpRequest.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpResponse.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpResponseBuilder.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpStatusCode.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpStatusCodeMap.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpStatusCodeProvider.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpContentTypeMap.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpContentTypeProvider.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/IHttpResponseDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpServerConnection.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/IHttpServerConnection.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpServerConnectionInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpClientConnection.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpClientConnectionInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpClient.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpServer.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpResponseDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/IHttpRequestHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/IHttpResponsePacketHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/IHttpResponsePacketHandlerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/IHttpCommandHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpRequestHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpRequestCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/IHttpRequestCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/IHttpCommandCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/IHttpRequestData.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpRequestData.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpRequestValueData.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpRequestObjectData.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/IHttpRequestBodyCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpRequestBuilder.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpRequestInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpChunkDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/HttpChunkDataHandleResult.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Http/EHttpConnectionError.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Sse/SseCommandHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Sse/SseResponseHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/Sse/ISseDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/WebSocket/WebSocketServer.h ${PROJECT_INCLUDE_DIR_PATH}/Network/WebSocket/WebSocketClient.h ${PROJECT_INCLUDE_DIR_PATH}/Network/WebSocket/WebSocketConnection.h ${PROJECT_INCLUDE_DIR_PATH}/Network/WebSocket/WebSocketServerHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Network/WebSocket/WebSocketClientHandler.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/Event.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/EventDispatcher.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/EventFuncRefSubscriber.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/EventFuncSubscriber.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/EventClassFuncSubscriber.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/EventLambdaFuncSubscriber.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/EventVoidLambdaFuncSubscriber.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/IEvent.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/IEventSubscriber.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/IEventId.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/FuncEventId.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/ObjectFuncEventId.h ${PROJECT_INCLUDE_DIR_PATH}/EventObserver/NameEventId.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Device.h ${PROJECT_INCLUDE_DIR_PATH}/Device/DeviceManager.h ${PROJECT_INCLUDE_DIR_PATH}/Device/IDeviceField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/EMeasuringChannelType.h ${PROJECT_INCLUDE_DIR_PATH}/Device/MeasuringChannel.h ${PROJECT_INCLUDE_DIR_PATH}/Device/IPreprocessingController.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Visualization/VisDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Visualization/RecalcForVisData.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/EDeviceEventType.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/IDeviceEvent.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/DeviceIntEvent.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/DeviceIntPairEvent.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/DeviceStringEvent.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/Collection/AvgHrEvent.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/Collection/SpoEvent.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/Collection/SecEvent.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/Collection/PointsEvent.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/Collection/VolumeEvent.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Events/Collection/DeepBreathProbeEvent.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Fields/DeviceFieldList.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Fields/ArrayDeviceField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Fields/ObjectDeviceField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Fields/ValueDeviceField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Fields/ValueArrayDeviceField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Fields/ObjectArrayDeviceField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Fields/IntDeviceField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Fields/IntArrayDeviceField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Fields/StringDeviceField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Fields/StringArrayDeviceField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/IFileDataReceiver.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/PackedFileDataReceiver.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/UnpackedFileDataReceiver.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/PackedFileDataBlock.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/UnpackedFileDataBlock.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/UnpackedChannelDataBlock.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/UnpackedEventDataBlock.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/UnpackedErrorDataBlock.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/IPackedFileDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/IUnpackedChannelDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/IUnpackedEventDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/IUnpackedErrorDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/FileDataReceiverSelector.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/UnpackedErrorDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrEventDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrChannelDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrHeaderCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrPatientInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrChannelInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrDeviceInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrUnits.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrUnitsMap.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrHeader.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrCableModeInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrEventWriter.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrGenerator.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Files/BinHdr/BinHdrFileParser.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Calibration/CalibKoef.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ICommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ICommandAnswer.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ICommandResult.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ICommandExecutor.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandDescription.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandFieldInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandOKResult.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandErrorResult.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/IComplexCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ValueCommandAnswer.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ObjectCommandAnswer.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/EmptyCommandAnswer.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandGeneratorResult.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ICommandAnswerReceiver.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ICommandAnswerConverter.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ICommandSender.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ICommandData.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ObjectCommandData.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/ValueCommandData.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandDataInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandDataList.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandAnswerClassFunctionConverter.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandAnswerConverter.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/SetStateFlagCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/GetStateFlagCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandQueue/CommandQueue.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandQueue/ICommandQueueRecord.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandQueue/CommandQueueRecord.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/CommandQueue/FuncCommandQueueRecord.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/ControllerCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/ControllerTextCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/ControllerFieldCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/ControllerCommandAnswerFieldInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/ControllerSetFieldDataHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/ControllerSetFieldCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/ControllerArrayFieldCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/ControllerAnswerReceiverGenerator.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/IControllerCommandField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/ControllerFieldCoreInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/ControllerArrayFieldInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Get/ControllerCommandGetField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Get/ControllerCommandGetFieldList.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Get/ControllerCommandGetArrayValueField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Get/ControllerCommandGetIntArrayValueField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Get/ControllerCommandGetStringArrayValueField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Get/ControllerCommandGetFieldBuilder.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetNumericField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetObjectField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetFieldList.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetArrayField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetNumericArrayField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetObjectArrayField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetIntField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetStringField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetIntArrayField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetStringArrayField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetNumericArrayValueField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetObjectArrayValueField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetStringArrayValueField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetIntArrayValueField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Set/ControllerCommandSetFieldBuilder.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Answer/IControllerCommandAnswerField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Answer/ControllerCommandValueAnswerField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Answer/ControllerCommandObjectAnswerField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Answer/ControllerCommandStringAnswerField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Answer/ControllerCommandIntAnswerField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Answer/ControllerCommandIntArrayAnswerField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Answer/ControllerCommandStringArrayAnswerField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Answer/ControllerCommandFieldArrayAnswerField.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Answer/ControllerCommandAnswerFieldList.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Controller/Fields/Answer/ControllerFieldInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/FieldData/ICommandFieldData.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/FieldData/CommandFieldValueData.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/FieldData/CommandFieldObjectData.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/FieldData/CommandFieldArrayValueData.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/FieldData/CommandFieldArrayObjectData.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetControllerVersionCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetControllerCmdListCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/LoadDataFileCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetChannelsCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetDefaultCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetStateCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetStateCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetSurveyInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetSurveyInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetChannelInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetChannelInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetPatientInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetPatientInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetPowerInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetFlashMemoryInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetDeviceInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetDeviceInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetCableInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetCableInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetCableModeCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetCableModesCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetCableModeInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetTimeCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetTimeCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetBpmInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetBpmInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetRecordInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/LoadRecordCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/CreateBinHdrCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetVisCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetRecCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetRecCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetDeepBreathCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetPreprocessingCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetPreprocessingCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetEcgRecalcCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetEcgRecalcCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetBinHdrHeaderInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetUnpackedDataCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetBinHdrGeneratorInfoCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/GetRestartDateTimeCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/SetDefaultCalibCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Device/Commands/Collection/ResetCalibStateCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/BitOperations.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/BitSequenceCoDec.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/IFastBuff.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/IFastBuffCallBack.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/FastBuff.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/IEventProvider.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/IInterpolator.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/IPackHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/ISimpleEventReciver.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Packer.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/PackingChannel.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/PackToBin.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/SimpleEventWriter.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/UnPacker.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/UnPackingChannel.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/PkDescPointFormat.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/PkDescBlockFormat.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/PkDescPoint.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/PkDescChannel.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/PkDescChannelFactory.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Points/PkDescPointZero.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Points/PkDescPointSingle.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Points/PkDescPointDouble.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Points/PkDescPointThree.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Points/PkDescPointEight.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Channels/PkDescChannelEcg.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Channels/PkDescChannelReo.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Channels/PkDescChannelMove.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Channels/PkDescChannelOxy.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Channels/PkDescChannelPrs.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Channels/PkDescChannelTon.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Channels/PkDescChannelBrth.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Block/PackBlock.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Block/PackBlockHead.h ${PROJECT_INCLUDE_DIR_PATH}/Packing/Desc/Block/PackBlockTail.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/AdapterSettings.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/AdapterSettingsParser.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/NetworkWorkerDispatcher.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/WebDeviceManager.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/ControllerHttpClient.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/IHttpRequestBodyHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/IHttpResponseBodyHandler.h #${PROJECT_INCLUDE_DIR_PATH}/Adapter/ControllerWebSocketClientHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Visualization/ControllerWebSocketVisMessageHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Visualization/AdapterWebSocketVisMessageHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Visualization/VisFrame.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Visualization/AdapterWebSocketVisServerHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/MicroBox/MicroBoxProvider.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/MicroBox/MicroBoxWebSocketMessageHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Events/ControllerWebSocketEventMessageHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Events/AdapterWebSocketEventMessageHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Events/EventFrame.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Events/EventMessagePacker.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Data/ControllerWebSocketDataMessageHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/IHttpCommandCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/ICommandHttpResponseCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/HttpCommandHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/HttpCommandHandlerLinker.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/HttpCommandAnswerReceiver.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Controller/HttpControllerCommandEmptyAnswerHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Controller/HttpControllerCommandSender.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Controller/HttpControllerRequestData.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Controller/ControllerRequestBodyCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Controller/HttpControllerCommonCommandSender.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Controller/ControllerHttpRequestInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Controller/HttpControllerAnswerReceiverGenerator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Controller/HttpControllerCommandAnswerHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/HttpGet/DefaultGetCommandHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/HttpPost/CmdPostCommandCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/HttpPost/RequestPostCommandCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/HttpPost/PostRequestInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/HttpPost/PostResponseHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/IJsonCommandCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/IJsonAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonCommandHttpResponseCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonObjectCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonArrayCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonRequestBodyCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/IJsonCommandRequestCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonCommandRequestData.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonRequestBodyHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonVersionCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonChannelArrayCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonEmptyCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonControllerCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonControllerVersionCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonRootObjectCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonHttpRequestInfo.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/IJsonCommandAnswerHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonCommandResponseBodyHandler.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonAdapterCmdListCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/JsonValueCommandAnswerCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/DataCreators/SetDataJsonCommandCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Json/DataCreators/EmptyDataJsonCommandCreator.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Collection/GetVersionCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Collection/GetAdapterCmdListCommand.h ${PROJECT_INCLUDE_DIR_PATH}/Adapter/Commands/Collection/GetMicroBoxDeviceInfoCommand.h ${Libusb_HEADERS} ${Json_HEADERS} ) # =========== Project Sources ========= set(PROJECT_SOURCES ${PROJECT_LIB_DIR_PATH}/MsgPack/msgpack11.cpp ${PROJECT_SRC_DIR_PATH}/main.cpp ) # ============== Add subdirectories ========================= add_subdirectory(${PROJECT_LIB_DIR_PATH}/nlohmann-json-3.11.2 nlohmann-json-3.11.2) add_subdirectory(${PROJECT_LIB_DIR_PATH}/libusb-1.0.24 libusb-1.0.24) # ============== Create Project ========================= if(WIN32) add_executable(${PROJECT_NAME} ${PROJECT_SOURCES} ${PROJECT_HEADERS} ${CMAKE_CURRENT_SOURCE_DIR}/app.rc ) elseif(UNIX) add_executable(${PROJECT_NAME} ${PROJECT_SOURCES} ${PROJECT_HEADERS}) endif() target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${DESTDIR_PATH}" ) # ============== Link Libraries ========================= target_link_libraries(${CMAKE_PROJECT_NAME} ${Libusb_LIB} ) if(WIN32) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") target_link_libraries(${PROJECT_NAME} wsock32) target_link_libraries(${PROJECT_NAME} ws2_32) endif() elseif(UNIX) target_link_libraries(${PROJECT_NAME} pthread) endif() # ======= Post Build Commands ================= file(WRITE ${DESTDIR_PATH}/adapter-version.txt ${WEBDEVICE_ADAPTER_VERSION}) file(WRITE ${DESTDIR_PATH}/versions.json "{\"Common\":\"${WEBDEVICE_VERSION}\",\"Adapter\":\"${WEBDEVICE_ADAPTER_VERSION}\",\"Frontend\":\"${WEBDEVICE_FRONTEND_VERSION}\"}") message(PROJECT_DIR_PATH="${PROJECT_DIR_PATH}") message(DESTDIR_PATH="${DESTDIR_PATH}") if(NOT ${PROJECT_DIR_PATH} STREQUAL ${DESTDIR_PATH}) # create directories if not exist if(NOT EXISTS ${GUI_DIR_DEST_PATH}) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${GUI_DIR_DEST_PATH} ) endif() if(NOT EXISTS ${VIS_START_DIR_DEST_PATH}) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${VIS_START_DIR_DEST_PATH} ) endif() add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_RESOURCES_DIR_SRC_PATH} ${PROJECT_RESOURCES_DIR_DEST_PATH} ) # copy files to output directory message(VIS_START_DIR_SRC_PATH="${VIS_START_DIR_SRC_PATH}") message(VIS_START_DIR_DEST_PATH="${VIS_START_DIR_DEST_PATH}") if(EXISTS ${VIS_START_DIR_SRC_PATH}) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${VIS_START_DIR_SRC_PATH} ${VIS_START_DIR_DEST_PATH} ) endif() add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_DIR_PATH}/settings.json ${DESTDIR_PATH}/settings.json ) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_DIR_PATH}/version.txt ${DESTDIR_PATH}/version.txt ) endif()