set(SRC_FILES src/ADSValidator.cpp src/AlgoTimeRegister.cpp src/Algorithm.cpp src/AlgorithmExecuteProfile.cpp src/AlgorithmFactory.cpp src/AlgorithmFactoryObserver.cpp src/AlgorithmHasProperty.cpp src/AlgorithmHistory.cpp src/AlgorithmManager.cpp src/AlgorithmObserver.cpp src/AlgorithmProperties.cpp src/AlgorithmProperty.cpp src/AlgorithmRuntimeProps.cpp src/AnalysisDataService.cpp src/AnalysisDataServiceObserver.cpp src/ArchiveSearchFactory.cpp src/Axis.cpp src/BinEdgeAxis.cpp src/BoostOptionalToAlgorithmProperty.cpp src/BoxController.cpp src/BoxControllerSettingsAlgorithm.cpp src/CatalogManager.cpp src/CatalogSession.cpp src/Citation.cpp src/Column.cpp src/ColumnFactory.cpp src/CommonBinsValidator.cpp src/CompositeCatalog.cpp src/CompositeDomainMD.cpp src/CompositeFunction.cpp src/ConstraintFactory.cpp src/CoordTransform.cpp src/CostFunctionFactory.cpp src/DataProcessorAlgorithm.cpp src/DeprecatedAlgorithm.cpp src/DeprecatedAlias.cpp src/DetectorSearcher.cpp src/DomainCreatorFactory.cpp src/EnabledWhenWorkspaceIsType.cpp src/EqualBinSizesValidator.cpp src/ExperimentInfo.cpp src/Expression.cpp src/FileBackedExperimentInfo.cpp src/FileFinder.cpp src/FileLoaderRegistry.cpp src/FileProperty.cpp src/FrameworkManager.cpp src/FuncMinimizerFactory.cpp src/FunctionDomain1D.cpp src/FunctionDomainGeneral.cpp src/FunctionDomainMD.cpp src/FunctionFactory.cpp src/FunctionGenerator.cpp src/FunctionParameterDecorator.cpp src/FunctionProperty.cpp src/FunctionValues.cpp src/GridDomain.cpp src/GridDomain1D.cpp src/GroupingLoader.cpp src/HistoWorkspace.cpp src/HistogramValidator.cpp src/HistoryItem.cpp src/HistoryView.cpp src/IDomainCreator.cpp src/IEventList.cpp src/IEventWorkspace.cpp src/IFuncMinimizer.cpp src/IFunction.cpp src/IFunction1D.cpp src/IFunction1DSpectrum.cpp src/IFunctionGeneral.cpp src/IFunctionMD.cpp src/IFunctionMW.cpp src/IJournal.cpp src/ILatticeFunction.cpp src/IMDEventWorkspace.cpp src/IMDHistoWorkspace.cpp src/IMDIterator.cpp src/IMDWorkspace.cpp src/IPawleyFunction.cpp src/IPeakFunction.cpp src/IPeaksWorkspace.cpp src/IPowderDiffPeakFunction.cpp src/ISISInstrumentDataCache.cpp src/ISISRunLogs.cpp src/ISpectrum.cpp src/ITableWorkspace.cpp src/ImmutableCompositeFunction.cpp src/ImplicitFunctionFactory.cpp src/ImplicitFunctionParameterParserFactory.cpp src/ImplicitFunctionParserFactory.cpp src/IncreasingAxisValidator.cpp src/IndexProperty.cpp src/IndexTypeProperty.cpp src/InstrumentDataService.cpp src/InstrumentFileFinder.cpp src/InstrumentValidator.cpp src/JointDomain.cpp src/LatticeDomain.cpp src/LinearScale.cpp src/LiveListener.cpp src/LiveListenerFactory.cpp src/LogManager.cpp src/LogarithmScale.cpp src/MDFrameValidator.cpp src/MDGeometry.cpp src/MatrixWorkspace.cpp src/MatrixWorkspaceMDIterator.cpp src/MuParserUtils.cpp src/MultiDomainFunction.cpp src/MultiPeriodGroupAlgorithm.cpp src/MultiPeriodGroupWorker.cpp src/MultipleExperimentInfos.cpp src/MultipleFileProperty.cpp src/NexusFileLoader.cpp src/NotebookBuilder.cpp src/NotebookWriter.cpp src/NullCoordTransform.cpp src/NumericAxis.cpp src/NumericAxisValidator.cpp src/OrientedLatticeValidator.cpp src/ParamFunction.cpp src/ParameterReference.cpp src/ParameterTie.cpp src/PeakFunctionIntegrator.cpp src/PolSANSWorkspaceValidator.cpp src/PreviewManager.cpp src/Progress.cpp src/Projection.cpp src/PropertyWithValue.cpp src/RawCountValidator.cpp src/RefAxis.cpp src/RegionSelectorObserver.cpp src/ResizeRectangularDetectorHelper.cpp src/Run.cpp src/Sample.cpp src/SampleShapeValidator.cpp src/SampleValidator.cpp src/ScopedWorkspace.cpp src/ScriptBuilder.cpp src/ScriptRepository.cpp src/ScriptRepositoryFactory.cpp src/SingleCountValidator.cpp src/SpectraAxis.cpp src/SpectraAxisValidator.cpp src/SpectrumDetectorMapping.cpp src/SpectrumInfo.cpp src/TableRow.cpp src/TextAxis.cpp src/TransformScaleFactory.cpp src/Workspace.cpp src/WorkspaceFactory.cpp src/WorkspaceGroup.cpp src/WorkspaceHasDxValidator.cpp src/WorkspaceHistory.cpp src/WorkspaceNearestNeighbourInfo.cpp src/WorkspaceNearestNeighbours.cpp src/WorkspaceOpOverloads.cpp src/WorkspaceProperty.cpp src/WorkspacePropertyUtils.cpp src/WorkspaceUnitValidator.cpp ) set(INC_FILES inc/MantidAPI/ADSValidator.h inc/MantidAPI/Algorithm.h inc/MantidAPI/Algorithm.hxx inc/MantidAPI/AlgorithmFactory.h inc/MantidAPI/AlgorithmFactoryObserver.h inc/MantidAPI/AlgorithmHasProperty.h inc/MantidAPI/AlgorithmHistory.h inc/MantidAPI/AlgorithmManager.h inc/MantidAPI/AlgorithmObserver.h inc/MantidAPI/AlgorithmProperties.h inc/MantidAPI/AlgorithmProperty.h inc/MantidAPI/AlgorithmRuntimeProps.h inc/MantidAPI/AnalysisDataService.h inc/MantidAPI/AnalysisDataServiceObserver.h inc/MantidAPI/ArchiveSearchFactory.h inc/MantidAPI/Axis.h inc/MantidAPI/BinEdgeAxis.h inc/MantidAPI/BoostOptionalToAlgorithmProperty.h inc/MantidAPI/BoxController.h inc/MantidAPI/BoxControllerSettingsAlgorithm.h inc/MantidAPI/CatalogFactory.h inc/MantidAPI/CatalogManager.h inc/MantidAPI/CatalogSession.h inc/MantidAPI/Citation.h inc/MantidAPI/Column.h inc/MantidAPI/ColumnFactory.h inc/MantidAPI/CommonBinsValidator.h inc/MantidAPI/CompositeCatalog.h inc/MantidAPI/CompositeDomain.h inc/MantidAPI/CompositeDomainMD.h inc/MantidAPI/CompositeFunction.h inc/MantidAPI/ConstraintFactory.h inc/MantidAPI/CoordTransform.h inc/MantidAPI/CostFunctionFactory.h inc/MantidAPI/DataProcessorAlgorithm.h inc/MantidAPI/DeclareUserAlg.h inc/MantidAPI/DeprecatedAlgorithm.h inc/MantidAPI/DeprecatedAlias.h inc/MantidAPI/DetectorSearcher.h inc/MantidAPI/DomainCreatorFactory.h inc/MantidAPI/EnabledWhenWorkspaceIsType.h inc/MantidAPI/EqualBinSizesValidator.h inc/MantidAPI/ExperimentInfo.h inc/MantidAPI/Expression.h inc/MantidAPI/FileBackedExperimentInfo.h inc/MantidAPI/FileFinder.h inc/MantidAPI/FileLoaderRegistry.h inc/MantidAPI/FileProperty.h inc/MantidAPI/FrameworkManager.h inc/MantidAPI/FuncMinimizerFactory.h inc/MantidAPI/FunctionDomain.h inc/MantidAPI/FunctionDomain1D.h inc/MantidAPI/FunctionDomainGeneral.h inc/MantidAPI/FunctionDomainMD.h inc/MantidAPI/FunctionFactory.h inc/MantidAPI/FunctionGenerator.h inc/MantidAPI/FunctionParameterDecorator.h inc/MantidAPI/FunctionProperty.h inc/MantidAPI/FunctionValues.h inc/MantidAPI/GridDomain.h inc/MantidAPI/GridDomain1D.h inc/MantidAPI/GroupingLoader.h inc/MantidAPI/HistoWorkspace.h inc/MantidAPI/HistogramValidator.h inc/MantidAPI/HistoryItem.h inc/MantidAPI/HistoryView.h inc/MantidAPI/IAlgorithm.h inc/MantidAPI/IAlgorithmRuntimeProps.h inc/MantidAPI/IAlgorithm_fwd.h inc/MantidAPI/IArchiveSearch.h inc/MantidAPI/IBackgroundFunction.h inc/MantidAPI/IBoxControllerIO.h inc/MantidAPI/ICatalog.h inc/MantidAPI/ICatalogInfoService.h inc/MantidAPI/IConstraint.h inc/MantidAPI/ICostFunction.h inc/MantidAPI/IDomainCreator.h inc/MantidAPI/IEventList.h inc/MantidAPI/IEventWorkspace.h inc/MantidAPI/IEventWorkspace_fwd.h inc/MantidAPI/IFileLoader.h inc/MantidAPI/IFuncMinimizer.h inc/MantidAPI/IFunction.h inc/MantidAPI/IFunction1D.h inc/MantidAPI/IFunction1DSpectrum.h inc/MantidAPI/IFunctionGeneral.h inc/MantidAPI/IFunctionMD.h inc/MantidAPI/IFunctionMW.h inc/MantidAPI/IFunctionWithLocation.h inc/MantidAPI/IFunction_fwd.h inc/MantidAPI/ILatticeFunction.h inc/MantidAPI/ILiveListener.h inc/MantidAPI/IMDEventWorkspace.h inc/MantidAPI/IMDEventWorkspace_fwd.h inc/MantidAPI/IMDHistoWorkspace.h inc/MantidAPI/IMDHistoWorkspace_fwd.h inc/MantidAPI/IMDIterator.h inc/MantidAPI/IMDNode.h inc/MantidAPI/IMDWorkspace.h inc/MantidAPI/IMaskWorkspace.h inc/MantidAPI/IPawleyFunction.h inc/MantidAPI/IPeakFunction.h inc/MantidAPI/IPeaksWorkspace.h inc/MantidAPI/IPeaksWorkspace_fwd.h inc/MantidAPI/IPowderDiffPeakFunction.h inc/MantidAPI/IPreview.h inc/MantidAPI/ISISInstrumentDataCache.h inc/MantidAPI/ISISRunLogs.h inc/MantidAPI/ISpectrum.h inc/MantidAPI/ISplittersWorkspace.h inc/MantidAPI/ITableWorkspace.h inc/MantidAPI/ITableWorkspace_fwd.h inc/MantidAPI/ITransformScale.h inc/MantidAPI/IWorkspaceProperty.h inc/MantidAPI/ImmutableCompositeFunction.h inc/MantidAPI/ImplicitFunctionBuilder.h inc/MantidAPI/ImplicitFunctionFactory.h inc/MantidAPI/ImplicitFunctionParameter.h inc/MantidAPI/ImplicitFunctionParameterParser.h inc/MantidAPI/ImplicitFunctionParameterParserFactory.h inc/MantidAPI/ImplicitFunctionParser.h inc/MantidAPI/ImplicitFunctionParserFactory.h inc/MantidAPI/IncreasingAxisValidator.h inc/MantidAPI/IndexProperty.h inc/MantidAPI/IndexTypeProperty.h inc/MantidAPI/InstrumentDataService.h inc/MantidAPI/InstrumentFileFinder.h inc/MantidAPI/InstrumentValidator.h inc/MantidAPI/Jacobian.h inc/MantidAPI/JointDomain.h inc/MantidAPI/LatticeDomain.h inc/MantidAPI/LinearScale.h inc/MantidAPI/LiveListener.h inc/MantidAPI/LiveListenerFactory.h inc/MantidAPI/LogManager.h inc/MantidAPI/LogarithmScale.h inc/MantidAPI/MDFrameValidator.h inc/MantidAPI/MDGeometry.h inc/MantidAPI/MatrixWorkspace.h inc/MantidAPI/MatrixWorkspaceMDIterator.h inc/MantidAPI/MatrixWorkspaceValidator.h inc/MantidAPI/MatrixWorkspace_fwd.h inc/MantidAPI/MuParserUtils.h inc/MantidAPI/MultiDomainFunction.h inc/MantidAPI/MultiPeriodGroupAlgorithm.h inc/MantidAPI/MultiPeriodGroupWorker.h inc/MantidAPI/MultipleExperimentInfos.h inc/MantidAPI/MultipleFileProperty.h inc/MantidAPI/NexusFileLoader.h inc/MantidAPI/NotebookBuilder.h inc/MantidAPI/NotebookWriter.h inc/MantidAPI/NullCoordTransform.h inc/MantidAPI/NumericAxis.h inc/MantidAPI/NumericAxisValidator.h inc/MantidAPI/OrientedLatticeValidator.h inc/MantidAPI/ParamFunction.h inc/MantidAPI/ParameterReference.h inc/MantidAPI/ParameterTie.h inc/MantidAPI/PeakFunctionIntegrator.h inc/MantidAPI/PolSANSWorkspaceValidator.h inc/MantidAPI/PreviewManager.h inc/MantidAPI/Progress.h inc/MantidAPI/Projection.h inc/MantidAPI/RawCountValidator.h inc/MantidAPI/RefAxis.h inc/MantidAPI/RegionSelectorObserver.h inc/MantidAPI/ResizeRectangularDetectorHelper.h inc/MantidAPI/Result.h inc/MantidAPI/Run.h inc/MantidAPI/Sample.h inc/MantidAPI/SampleShapeValidator.h inc/MantidAPI/SampleValidator.h inc/MantidAPI/ScopedWorkspace.h inc/MantidAPI/ScriptBuilder.h inc/MantidAPI/ScriptRepository.h inc/MantidAPI/ScriptRepositoryFactory.h inc/MantidAPI/SingleCountValidator.h inc/MantidAPI/SingleValueParameter.h inc/MantidAPI/SingleValueParameterParser.h inc/MantidAPI/SpectraAxis.h inc/MantidAPI/SpectraAxisValidator.h inc/MantidAPI/SpectrumDetectorMapping.h inc/MantidAPI/SpectrumInfo.h inc/MantidAPI/SpectrumInfoItem.h inc/MantidAPI/SpectrumInfoIterator.h inc/MantidAPI/TableRow.h inc/MantidAPI/TextAxis.h inc/MantidAPI/TransformScaleFactory.h inc/MantidAPI/VectorParameter.h inc/MantidAPI/VectorParameterParser.h inc/MantidAPI/Workspace.h inc/MantidAPI/WorkspaceFactory.h inc/MantidAPI/WorkspaceGroup.h inc/MantidAPI/WorkspaceGroup_fwd.h inc/MantidAPI/WorkspaceHasDxValidator.h inc/MantidAPI/WorkspaceHistory.h inc/MantidAPI/WorkspaceNearestNeighbourInfo.h inc/MantidAPI/WorkspaceNearestNeighbours.h inc/MantidAPI/WorkspaceOpOverloads.h inc/MantidAPI/WorkspaceProperty.h inc/MantidAPI/WorkspaceProperty.hxx inc/MantidAPI/WorkspacePropertyUtils.h inc/MantidAPI/WorkspaceUnitValidator.h inc/MantidAPI/Workspace_fwd.h ) set(TEST_FILES ADSValidatorTest.h AlgoTimeRegisterTest.h AlgorithmFactoryObserverTest.h AlgorithmFactoryTest.h AlgorithmHasPropertyTest.h AlgorithmHistoryTest.h AlgorithmManagerTest.h AlgorithmPropertyTest.h AlgorithmRuntimePropsTest.h AlgorithmTest.h AnalysisDataServiceObserverTest.h AnalysisDataServiceTest.h AsynchronousTest.h BinEdgeAxisTest.h BoxControllerSettingsAlgorithmTest.h BoxControllerTest.h CitationTest.h CommonBinsValidatorTest.h CompositeFunctionTest.h CoordTransformTest.h CostFunctionFactoryTest.h DataProcessorAlgorithmTest.h DetectorInfoTest.h DetectorSearcherTest.h EnabledWhenWorkspaceIsTypeTest.h EqualBinSizesValidatorTest.h ExperimentInfoTest.h ExpressionTest.h FileBackedExperimentInfoTest.h FileFinderTest.h FileLoaderRegistryTest.h FilePropertyTest.h FrameworkManagerTest.h FuncMinimizerFactoryTest.h FunctionAttributeTest.h FunctionAttributeValidatorTest.h FunctionDomainGeneralTest.h FunctionDomainTest.h FunctionFactoryTest.h FunctionParameterDecoratorTest.h FunctionPropertyTest.h FunctionTest.h FunctionValuesTest.h GroupingLoaderTest.h HistogramValidatorTest.h HistoryItemTest.h HistoryViewTest.h IFunction1DSpectrumTest.h IFunction1DTest.h IFunctionMDTest.h IFunctionTest.h ILatticeFunctionTest.h IMDWorkspaceTest.h IPreviewTest.h ISISInstrumentDataCacheTest.h ISpectrumTest.h ImmutableCompositeFunctionTest.h ImplicitFunctionParserFactoryTest.h IncreasingAxisValidatorTest.h IndexPropertyTest.h IndexTypePropertyTest.h InstrumentDataServiceTest.h InstrumentFileFinderTest.h InstrumentValidatorTest.h LatticeDomainTest.h LiveListenerFactoryTest.h LiveListenerTest.h LogManagerTest.h MDFrameValidatorTest.h MDGeometryTest.h MatrixWorkspaceMDIteratorTest.h MuParserUtilsTest.h MultiDomainFunctionTest.h MultiPeriodGroupAlgorithmTest.h MultiPeriodGroupWorkerTest.h MultipleExperimentInfosTest.h MultipleFilePropertyTest.h NotebookBuilderTest.h NotebookWriterTest.h NumericAxisTest.h NumericAxisValidatorTest.h OrientedLatticeValidatorTest.h ParamFunctionAttributeHolderTest.h ParameterReferenceTest.h ParameterTieTest.h PeakFunctionIntegratorTest.h PolSANSWorkspaceValidatorTest.h PreviewManagerTest.h ProgressTest.h ProjectionTest.h RawCountValidatorTest.h ResizeRectangularDetectorHelperTest.h ResultTest.h RunTest.h SampleShapeValidatorTest.h SampleTest.h SampleValidatorTest.h ScopedWorkspaceTest.h ScriptBuilderTest.h SingleCountValidatorTest.h SpectraAxisTest.h SpectraAxisValidatorTest.h SpectrumDetectorMappingTest.h SpectrumInfoTest.h TextAxisTest.h VectorParameterParserTest.h VectorParameterTest.h WorkspaceFactoryTest.h WorkspaceGroupTest.h WorkspaceHasDxValidatorTest.h WorkspaceHistoryIOTest.h WorkspaceHistoryTest.h WorkspaceNearestNeighbourInfoTest.h WorkspaceNearestNeighboursTest.h WorkspaceOpOverloadsTest.h WorkspacePropertyTest.h WorkspacePropertyUtilsTest.h WorkspaceUnitValidatorTest.h ) set(GMOCK_TEST_FILES ImplicitFunctionFactoryTest.h ImplicitFunctionParameterParserFactoryTest.h MatrixWorkspaceTest.h) if(COVERAGE) foreach(loop_var ${SRC_FILES} ${INC_FILES}) set_property(GLOBAL APPEND PROPERTY COVERAGE_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/${loop_var}") endforeach(loop_var) endif() # Have to link to winsock and bcrypt library on Windows if(WIN32) set(WINSOCK ws2_32) set(BCRYPT bcrypt) endif() # Add the target for this directory add_library(API ${SRC_FILES} ${INC_FILES}) add_library(Mantid::API ALIAS API) # Add a precompiled header where they are supported target_precompile_headers(API PRIVATE inc/MantidAPI/PrecompiledHeader.h) target_include_directories( API PUBLIC $ $ ) # Set the name of the generated library set_target_properties(API PROPERTIES OUTPUT_NAME MantidAPI COMPILE_DEFINITIONS IN_MANTID_API) if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set_target_properties(API PROPERTIES INSTALL_RPATH "@loader_path/../MacOS;@loader_path/../Frameworks") elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") set_target_properties(API PROPERTIES INSTALL_RPATH "\$ORIGIN/../${LIB_DIR}") endif() # Add to the 'Framework' group in VS set_property(TARGET API PROPERTY FOLDER "MantidFramework") target_link_libraries( API PUBLIC Mantid::HistogramData Mantid::Types Mantid::Kernel Mantid::Geometry Mantid::Indexing Mantid::Nexus PRIVATE ${WINSOCK} ${BCRYPT} Mantid::Beamline Mantid::Json ) # Add the unit tests directory add_subdirectory(test) # Auto-generate exports header target_include_directories( API PUBLIC $ $ ) generate_mantid_export_header(API TRUE) # Installation settings set(TARGET_EXPORT_NAME "MantidAPITargets") mtd_install_framework_lib(TARGETS API INSTALL_EXPORT_FILE EXPORT_NAME ${TARGET_EXPORT_NAME})