From a7276fd7561a86af028e1818cfe4d890de90390c Mon Sep 17 00:00:00 2001
From: Russell Taylor <taylorrj@ornl.gov>
Date: Wed, 29 Dec 2010 18:15:07 +0000
Subject: [PATCH] Add CMake files for Framework. They don't work yet. Re #1881.

---
 Code/Mantid/Framework/API/CMakeLists.txt      |  90 ++++++++++
 .../Framework/Algorithms/CMakeLists.txt       | 164 ++++++++++++++++++
 Code/Mantid/Framework/CMakeLists.txt          |  98 +++++++++++
 .../Framework/CurveFitting/CMakeLists.txt     |  63 +++++++
 .../Framework/DataHandling/CMakeLists.txt     |  89 ++++++++++
 .../Framework/DataObjects/CMakeLists.txt      |  34 ++++
 Code/Mantid/Framework/Geometry/CMakeLists.txt | 159 +++++++++++++++++
 Code/Mantid/Framework/ICat/CMakeLists.txt     |  40 +++++
 Code/Mantid/Framework/Kernel/CMakeLists.txt   |  87 ++++++++++
 .../inc/MantidKernel/MantidVersion.h.in       |   3 +
 Code/Mantid/Framework/Nexus/CMakeLists.txt    |  43 +++++
 .../Mantid/Framework/PythonAPI/CMakeLists.txt |  61 +++++++
 12 files changed, 931 insertions(+)
 create mode 100644 Code/Mantid/Framework/API/CMakeLists.txt
 create mode 100644 Code/Mantid/Framework/Algorithms/CMakeLists.txt
 create mode 100644 Code/Mantid/Framework/CMakeLists.txt
 create mode 100644 Code/Mantid/Framework/CurveFitting/CMakeLists.txt
 create mode 100644 Code/Mantid/Framework/DataHandling/CMakeLists.txt
 create mode 100644 Code/Mantid/Framework/DataObjects/CMakeLists.txt
 create mode 100644 Code/Mantid/Framework/Geometry/CMakeLists.txt
 create mode 100644 Code/Mantid/Framework/ICat/CMakeLists.txt
 create mode 100644 Code/Mantid/Framework/Kernel/CMakeLists.txt
 create mode 100644 Code/Mantid/Framework/Kernel/inc/MantidKernel/MantidVersion.h.in
 create mode 100644 Code/Mantid/Framework/Nexus/CMakeLists.txt
 create mode 100644 Code/Mantid/Framework/PythonAPI/CMakeLists.txt

diff --git a/Code/Mantid/Framework/API/CMakeLists.txt b/Code/Mantid/Framework/API/CMakeLists.txt
new file mode 100644
index 00000000000..a3b11653d5a
--- /dev/null
+++ b/Code/Mantid/Framework/API/CMakeLists.txt
@@ -0,0 +1,90 @@
+set ( SRC_FILES src/Algorithm.cpp src/AlgorithmFactory.cpp
+      src/AlgorithmHistory.cpp src/AlgorithmManager.cpp
+      src/AlgorithmProxy.cpp src/AnalysisDataService.cpp
+      src/ArchiveSearchFactory.cpp src/Axis.cpp src/CatalogFactory.cpp
+      src/CloneableAlgorithm.cpp src/Column.cpp src/ColumnFactory.cpp
+      src/CompositeFunction.cpp src/ConstraintFactory.cpp
+      src/Expression.cpp src/FileFinder.cpp src/FileProperty.cpp
+      src/FrameworkManager.cpp src/Function.cpp
+      src/FunctionFactory.cpp src/IEventWorkspace.cpp
+      src/IFunction.cpp src/PairedGroupAlgorithm.cpp
+      src/NumericAxis.cpp src/MemoryManager.cpp
+      src/MatrixWorkspace.cpp src/LocatedDataValue.cpp
+      src/LocatedDataRef.cpp
+      src/ImplicitFunctionParameterParserFactory.cpp
+      src/ITableWorkspace.cpp src/IPeakFunction.cpp
+      src/InstrumentDataService.cpp src/ImplictFunctionFactory.cpp
+      src/ImplicitFunctionParserFactory.cpp src/ParameterReference.cpp
+      src/ParameterTie.cpp src/Progress.cpp src/RefAxis.cpp
+      src/Run.cpp src/Sample.cpp src/SpectraAxis.cpp
+      src/SpectraDetectorMap.cpp src/TableRow.cpp src/TextAxis.cpp
+      src/Workspace.cpp src/WorkspaceFactory.cpp
+      src/WorkspaceGroup.cpp src/WorkspaceHistory.cpp
+      src/WorkspaceOpOverloads.cpp src/WorkspaceProperty.cpp
+      src/WorkspaceTracer.cpp )
+
+set ( INC_FILES inc/MantidAPI/AlgorithmFactory.h
+      inc/MantidAPI/Algorithm.h inc/MantidAPI/AlgorithmHistory.h
+      inc/MantidAPI/AlgorithmManager.h
+      inc/MantidAPI/AlgorithmObserver.h inc/MantidAPI/AlgorithmProxy.h
+      inc/MantidAPI/AnalysisDataService.h
+      inc/MantidAPI/ArchiveSearchFactory.h inc/MantidAPI/Axis.h
+      inc/MantidAPI/CatalogFactory.h
+      inc/MantidAPI/CloneableAlgorithm.h inc/MantidAPI/ColumnFactory.h
+      inc/MantidAPI/Column.h inc/MantidAPI/CompositeFunction.h
+      inc/MantidAPI/ConstraintFactory.h inc/MantidAPI/DeclareUserAlg.h
+      inc/MantidAPI/DllExport.h inc/MantidAPI/Expression.h
+      inc/MantidAPI/FileFinder.h inc/MantidAPI/FileProperty.h
+      inc/MantidAPI/FrameworkManager.h inc/MantidAPI/FunctionFactory.h
+      inc/MantidAPI/Function.h inc/MantidAPI/IAlgorithm.h
+      inc/MantidAPI/IArchiveSearch.h
+      inc/MantidAPI/IBackgroundFunction.h inc/MantidAPI/ICatalog.h
+      inc/MantidAPI/IConstraint.h inc/MantidAPI/IDataItem.h
+      inc/MantidAPI/IEventWorkspace.h inc/MantidAPI/IFunction.h
+      inc/MantidAPI/IFunctionWithLocation.h
+      inc/MantidAPI/ILocatedData.h inc/MantidAPI/IMDWorkspace.h
+      inc/MantidAPI/ImplicitFunctionBuilder.h
+      inc/MantidAPI/ImplicitFunctionFactory.h
+      inc/MantidAPI/ImplicitFunction.h
+      inc/MantidAPI/ImplicitFunctionParameter.h
+      inc/MantidAPI/ImplicitFunctionParameterParserFactory.h
+      inc/MantidAPI/ImplicitFunctionParameterParser.h
+      inc/MantidAPI/ImplicitFunctionParserFactory.h
+      inc/MantidAPI/ImplicitFunctionParser.h
+      inc/MantidAPI/InstrumentDataService.h
+      inc/MantidAPI/IPeakFunction.h inc/MantidAPI/ITableWorkspace.h
+      inc/MantidAPI/IWorkspaceProperty.h
+      inc/MantidAPI/LocatedDataRef.h inc/MantidAPI/LocatedDataValue.h
+      inc/MantidAPI/MatrixWorkspace.h inc/MantidAPI/MemoryManager.h
+      inc/MantidAPI/NumericAxis.h inc/MantidAPI/PairedGroupAlgorithm.h
+      inc/MantidAPI/ParameterReference.h inc/MantidAPI/ParameterTie.h
+      inc/MantidAPI/Point3D.h inc/MantidAPI/Progress.h
+      inc/MantidAPI/RefAxis.h inc/MantidAPI/Run.h
+      inc/MantidAPI/Sample.h inc/MantidAPI/SpectraAxis.h
+      inc/MantidAPI/SpectraDetectorMap.h inc/MantidAPI/TableRow.h
+      inc/MantidAPI/TextAxis.h inc/MantidAPI/WorkspaceFactory.h
+      inc/MantidAPI/WorkspaceGroup.h inc/MantidAPI/Workspace.h
+      inc/MantidAPI/WorkspaceHistory.h
+      inc/MantidAPI/WorkspaceIteratorCode.h
+      inc/MantidAPI/WorkspaceIterator.h
+      inc/MantidAPI/WorkspaceOpOverloads.h
+      inc/MantidAPI/WorkspaceProperty.h
+      inc/MantidAPI/WorkspaceTracer.h
+      inc/MantidAPI/WorkspaceValidators.h )
+
+# For Windows:
+add_definitions ( -DIN_MANTID_API )
+
+# Have to link to winsock library on Windows
+if ( WIN32 )
+  set ( WINSOCK ws2_32 )
+endif ()
+
+# Add the target for this directory
+add_library ( API ${SRC_FILES} ${INC_FILES})
+# Set the name of the generated library
+set_target_properties ( API PROPERTIES OUTPUT_NAME MantidAPI )
+# Add to the 'Framework' group in VS
+set_property ( TARGET API PROPERTY FOLDER "Framework" )
+
+target_link_libraries ( API ${MANTIDLIBS} ${WINSOCK} )
diff --git a/Code/Mantid/Framework/Algorithms/CMakeLists.txt b/Code/Mantid/Framework/Algorithms/CMakeLists.txt
new file mode 100644
index 00000000000..f1f60ad7a02
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/CMakeLists.txt
@@ -0,0 +1,164 @@
+set ( SRC_FILES src/AbsorptionCorrection.cpp src/AddSampleLog.cpp
+      src/AlignDetectors.cpp src/AnyShapeAbsorption.cpp
+      src/ApplyTransmissionCorrection.cpp src/BinaryOperation.cpp
+      src/CalculateEfficiency.cpp
+      src/CalculateTransmissionBeamSpreader.cpp
+      src/CalculateTransmission.cpp src/ChangeBinOffset.cpp
+      src/CheckWorkspacesMatch.cpp src/CloneWorkspace.cpp
+      src/CommutativeBinaryOperation.cpp src/ConjoinWorkspaces.cpp
+      src/ConvertFromDistribution.cpp src/ConvertSpectrumAxis.cpp
+      src/ConvertToDistribution.cpp src/ConvertUnits.cpp
+      src/CorrectKiKf.cpp src/CorrectToFile.cpp
+      src/CreateCalFileByNames.cpp src/CreateSingleValuedWorkspace.cpp
+      src/CreateWorkspace.cpp src/CropWorkspace.cpp
+      src/CrossCorrelate.cpp src/CuboidGaugeVolumeAbsorption.cpp
+      src/CylinderAbsorption.cpp src/DetectorEfficiencyCor.cpp
+      src/DetectorEfficiencyVariation.cpp
+      src/DiffractionFocussing2.cpp src/DiffractionFocussing.cpp
+      src/Divide.cpp src/ElasticWindow.cpp
+      src/ExponentialCorrection.cpp src/Exponential.cpp
+      src/ExtractFFTSpectrum.cpp src/ExtractSingleSpectrum.cpp
+      src/FFT.cpp src/FFTSmooth2.cpp src/FFTSmooth.cpp
+      src/FilterByLogValue.cpp src/FilterByTime.cpp
+      src/FindCenterOfMassPosition.cpp src/FindDeadDetectors.cpp
+      src/FindDetectorsOutsideLimits.cpp src/FindPeaks.cpp
+      src/FlatBackground.cpp src/FlatPlateAbsorption.cpp
+      src/GeneralisedSecondDifference.cpp src/GetDetectorOffsets.cpp
+      src/GetEi2.cpp src/GetEi.cpp src/GhostCorrection.cpp
+      src/GroupWorkspaces.cpp src/He3TubeEfficiency.cpp
+      src/HRPDSlabCanAbsorption.cpp src/InputWSDetectorInfo.cpp
+      src/InterpolatingRebin.cpp src/Logarithm.cpp src/MaskBins.cpp
+      src/MaskDetectorsIf.cpp src/Max.cpp src/MedianDetectorTest.cpp
+      src/MergeRuns.cpp src/Minus.cpp
+      src/MultipleScatteringAbsorption.cpp src/Multiply.cpp
+      src/MultiplyRange.cpp src/MuonAlphaCalc.cpp
+      src/MuonAsymmetryCalc.cpp src/MuonRemoveExpDecay.cpp
+      src/NormaliseByCurrent.cpp src/NormaliseToMonitor.cpp
+      src/OneMinusExponentialCor.cpp src/PlotAsymmetryByLogValue.cpp
+      src/Plus.cpp src/PointByPointVCorrection.cpp
+      src/PoissonErrors.cpp src/PolynomialCorrection.cpp src/Power.cpp
+      src/PowerLawCorrection.cpp src/Q1D.cpp src/Q1DWeighted.cpp
+      src/Qxy.cpp src/ReadGroupsFromFile.cpp src/RealFFT.cpp
+      src/Rebin.cpp src/RebinToWorkspace.cpp src/Rebunch.cpp
+      src/Regroup.cpp src/RemoveBins.cpp src/RenameWorkspace.cpp
+      src/ReplaceSpecialValues.cpp src/Scale.cpp
+      src/SimpleIntegration.cpp src/SmoothData.cpp src/SofQW.cpp
+      src/SolidAngleCorrection.cpp src/SolidAngle.cpp src/Sort.cpp
+      src/StripPeaks.cpp src/StripVanadiumPeaks.cpp
+      src/SumNeighbours.cpp src/SumRowColumn.cpp src/SumSpectra.cpp
+      src/TofCorrection.cpp src/Transpose.cpp src/UnaryOperation.cpp
+      src/UnGroupWorkspaces.cpp src/Unwrap.cpp src/WeightedMean.cpp )
+
+set ( INC_FILES inc/MantidAlgorithms/AbsorptionCorrection.h
+      inc/MantidAlgorithms/AddSampleLog.h
+      inc/MantidAlgorithms/AlignDetectors.h
+      inc/MantidAlgorithms/AnyShapeAbsorption.h
+      inc/MantidAlgorithms/ApplyTransmissionCorrection.h
+      inc/MantidAlgorithms/BinaryOperation.h
+      inc/MantidAlgorithms/CalculateEfficiency.h
+      inc/MantidAlgorithms/CalculateTransmissionBeamSpreader.h
+      inc/MantidAlgorithms/CalculateTransmission.h
+      inc/MantidAlgorithms/ChangeBinOffset.h
+      inc/MantidAlgorithms/CheckWorkspacesMatch.h
+      inc/MantidAlgorithms/CloneWorkspace.h
+      inc/MantidAlgorithms/CommutativeBinaryOperation.h
+      inc/MantidAlgorithms/ConjoinWorkspaces.h
+      inc/MantidAlgorithms/ConvertFromDistribution.h
+      inc/MantidAlgorithms/ConvertSpectrumAxis.h
+      inc/MantidAlgorithms/ConvertToDistribution.h
+      inc/MantidAlgorithms/ConvertUnits.h
+      inc/MantidAlgorithms/CorrectKiKf.h
+      inc/MantidAlgorithms/CorrectToFile.h
+      inc/MantidAlgorithms/CreateCalFileByNames.h
+      inc/MantidAlgorithms/CreateSingleValuedWorkspace.h
+      inc/MantidAlgorithms/CreateWorkspace.h
+      inc/MantidAlgorithms/CropWorkspace.h
+      inc/MantidAlgorithms/CrossCorrelate.h
+      inc/MantidAlgorithms/CuboidGaugeVolumeAbsorption.h
+      inc/MantidAlgorithms/CylinderAbsorption.h
+      inc/MantidAlgorithms/DetectorEfficiencyCor.h
+      inc/MantidAlgorithms/DetectorEfficiencyVariation.h
+      inc/MantidAlgorithms/DiffractionFocussing2.h
+      inc/MantidAlgorithms/DiffractionFocussing.h
+      inc/MantidAlgorithms/Divide.h
+      inc/MantidAlgorithms/ElasticWindow.h
+      inc/MantidAlgorithms/ExponentialCorrection.h
+      inc/MantidAlgorithms/Exponential.h
+      inc/MantidAlgorithms/ExtractFFTSpectrum.h
+      inc/MantidAlgorithms/ExtractSingleSpectrum.h
+      inc/MantidAlgorithms/FFT.h inc/MantidAlgorithms/FFTSmooth2.h
+      inc/MantidAlgorithms/FFTSmooth.h
+      inc/MantidAlgorithms/FilterByLogValue.h
+      inc/MantidAlgorithms/FilterByTime.h
+      inc/MantidAlgorithms/FindCenterOfMassPosition.h
+      inc/MantidAlgorithms/FindDeadDetectors.h
+      inc/MantidAlgorithms/FindDetectorsOutsideLimits.h
+      inc/MantidAlgorithms/FindPeaks.h
+      inc/MantidAlgorithms/FlatBackground.h
+      inc/MantidAlgorithms/FlatPlateAbsorption.h
+      inc/MantidAlgorithms/GeneralisedSecondDifference.h
+      inc/MantidAlgorithms/GetDetectorOffsets.h
+      inc/MantidAlgorithms/GetEi2.h inc/MantidAlgorithms/GetEi.h
+      inc/MantidAlgorithms/GhostCorrection.h
+      inc/MantidAlgorithms/GroupWorkspaces.h
+      inc/MantidAlgorithms/He3TubeEfficiency.h
+      inc/MantidAlgorithms/HRPDSlabCanAbsorption.h
+      inc/MantidAlgorithms/InputWSDetectorInfo.h
+      inc/MantidAlgorithms/InterpolatingRebin.h
+      inc/MantidAlgorithms/Logarithm.h inc/MantidAlgorithms/MaskBins.h
+      inc/MantidAlgorithms/MaskDetectorsIf.h
+      inc/MantidAlgorithms/Max.h
+      inc/MantidAlgorithms/MedianDetectorTest.h
+      inc/MantidAlgorithms/MergeRuns.h inc/MantidAlgorithms/Minus.h
+      inc/MantidAlgorithms/MultipleScatteringAbsorption.h
+      inc/MantidAlgorithms/Multiply.h
+      inc/MantidAlgorithms/MultiplyRange.h
+      inc/MantidAlgorithms/MuonAlphaCalc.h
+      inc/MantidAlgorithms/MuonAsymmetryCalc.h
+      inc/MantidAlgorithms/MuonRemoveExpDecay.h
+      inc/MantidAlgorithms/NormaliseByCurrent.h
+      inc/MantidAlgorithms/NormaliseToMonitor.h
+      inc/MantidAlgorithms/OneMinusExponentialCor.h
+      inc/MantidAlgorithms/PlotAsymmetryByLogValue.h
+      inc/MantidAlgorithms/Plus.h
+      inc/MantidAlgorithms/PointByPointVCorrection.h
+      inc/MantidAlgorithms/PoissonErrors.h
+      inc/MantidAlgorithms/PolynomialCorrection.h
+      inc/MantidAlgorithms/Power.h
+      inc/MantidAlgorithms/PowerLawCorrection.h
+      inc/MantidAlgorithms/Q1D.h inc/MantidAlgorithms/Q1DWeighted.h
+      inc/MantidAlgorithms/Qxy.h
+      inc/MantidAlgorithms/ReadGroupsFromFile.h
+      inc/MantidAlgorithms/RealFFT.h inc/MantidAlgorithms/Rebin.h
+      inc/MantidAlgorithms/RebinToWorkspace.h
+      inc/MantidAlgorithms/Rebunch.h inc/MantidAlgorithms/Regroup.h
+      inc/MantidAlgorithms/RemoveBins.h
+      inc/MantidAlgorithms/RenameWorkspace.h
+      inc/MantidAlgorithms/ReplaceSpecialValues.h
+      inc/MantidAlgorithms/Scale.h
+      inc/MantidAlgorithms/SimpleIntegration.h
+      inc/MantidAlgorithms/SmoothData.h inc/MantidAlgorithms/SofQW.h
+      inc/MantidAlgorithms/SolidAngleCorrection.h
+      inc/MantidAlgorithms/SolidAngle.h inc/MantidAlgorithms/Sort.h
+      inc/MantidAlgorithms/StripPeaks.h
+      inc/MantidAlgorithms/StripVanadiumPeaks.h
+      inc/MantidAlgorithms/SumNeighbours.h
+      inc/MantidAlgorithms/SumRowColumn.h
+      inc/MantidAlgorithms/SumSpectra.h
+      inc/MantidAlgorithms/TofCorrection.h
+      inc/MantidAlgorithms/Transpose.h
+      inc/MantidAlgorithms/UnaryOperation.h
+      inc/MantidAlgorithms/UnGroupWorkspaces.h
+      inc/MantidAlgorithms/Unwrap.h
+      inc/MantidAlgorithms/WeightedMean.h)
+
+# Add the target for this directory
+add_library ( Algorithms ${SRC_FILES} ${INC_FILES})
+# Set the name of the generated library
+set_target_properties ( Algorithms PROPERTIES OUTPUT_NAME MantidAlgorithms )
+# Add to the 'Framework' group in VS
+set_property ( TARGET Algorithms PROPERTY FOLDER "Framework" )
+
+include_directories ( inc )
+
+target_link_libraries ( Algorithms ${MANTIDLIBS} ${GSL_LIBRARIES} )
\ No newline at end of file
diff --git a/Code/Mantid/Framework/CMakeLists.txt b/Code/Mantid/Framework/CMakeLists.txt
new file mode 100644
index 00000000000..d23fbd2fff7
--- /dev/null
+++ b/Code/Mantid/Framework/CMakeLists.txt
@@ -0,0 +1,98 @@
+# This is mainly here so you don't get a complaint when running cmake
+cmake_minimum_required (VERSION 2.6)
+
+# Add the path to our custom 'find' modules
+set ( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../Build/CMake")
+
+# Define the project name.
+project (MantidFramework)
+
+# TODO: split this off into a separate file
+if ( WIN32 )
+  add_definitions ( -DWIN32 -D_WINDOWS -DMS_VISUAL_STUDIO )
+  add_definitions ( -D_USE_MATH_DEFINES -DNOMINMAX )
+  add_definitions ( -DGSL_DLL )
+  set ( CMAKE_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../Third_Party/include )
+  set ( BOOST_INCLUDEDIR "../../Third_Party/include" )
+  if ( CMAKE_CL_64 )
+    set ( CMAKE_LIBRARY_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../Third_Party/lib/win64 )
+    set ( BOOST_LIBRARIES "../../Third_Party/lib/win64" )
+  else ()
+    set ( BOOST_LIBRARIES "../../Third_Party/lib/win32" )
+  endif ()
+endif ()
+
+# If building as a stand-alone project, call our common setup script
+if ( NOT COMMONSETUP_DONE )
+  include ( CommonSetup )
+endif ()
+
+###########################################################################
+# This section deals with creating the MantidVersion.h header
+###########################################################################
+
+if ( Subversion_FOUND )
+  # extract working copy information for SOURCE_DIR into Framework_XXX variables
+  Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Framework)
+else ()
+  # Just use a dummy version number and print a warning
+  message ( "Subversion not found - using 0 for revision number in MantidVersion.h" )
+  set ( Framework_WC_REVISION 0 )
+endif ()
+# Create the header with the revision number in
+set ( HEADER_DIR Kernel/inc/MantidKernel )
+configure_file ( ${PROJECT_SOURCE_DIR}/${HEADER_DIR}/MantidVersion.h.in
+                 ${PROJECT_SOURCE_DIR}/${HEADER_DIR}/MantidVersion.h 
+)
+
+###########################################################################
+# Look for dependencies - bail out if any not found
+###########################################################################
+
+# Might just as well link everything to Boost & Poco
+set ( MANTIDLIBS  ${Boost_LIBRARIES} ${POCO_LIBRARIES} )
+
+# gsl is currently needed by Geometry, Algorithms & Curvefitting
+find_package ( GSL REQUIRED )
+
+###########################################################################
+# Look for OpenMP and set compiler flags if found
+###########################################################################
+
+find_package ( OpenMP )
+if ( OPENMP_FOUND )
+#  add_definitions ( ${OpenMP_CXX_FLAGS} )
+  set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}" )
+  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )
+endif ()
+
+###########################################################################
+# Now add the packages one-by-one, building up the dependencies as we go
+###########################################################################
+
+include_directories (Kernel/inc)
+add_subdirectory (Kernel)
+set ( MANTIDLIBS ${MANTIDLIBS} Kernel )
+
+include_directories (Geometry/inc)
+# muParser needed by Geometry and subsequent packages
+include_directories ( ${MUPARSER_INCLUDE_DIR} )
+set ( MANTIDLIBS ${MANTIDLIBS} ${MUPARSER_LIBRARIES} )
+add_subdirectory (Geometry)
+set ( MANTIDLIBS ${MANTIDLIBS} Geometry )
+
+include_directories (API/inc)
+add_subdirectory (API)
+set ( MANTIDLIBS ${MANTIDLIBS} API )
+
+add_subdirectory (PythonAPI)
+
+include_directories (DataObjects/inc)
+add_subdirectory (DataObjects)
+set ( MANTIDLIBS ${MANTIDLIBS} DataObjects )
+
+add_subdirectory (DataHandling)
+add_subdirectory (Nexus)
+add_subdirectory (Algorithms)
+add_subdirectory (CurveFitting)
+add_subdirectory (ICat)
diff --git a/Code/Mantid/Framework/CurveFitting/CMakeLists.txt b/Code/Mantid/Framework/CurveFitting/CMakeLists.txt
new file mode 100644
index 00000000000..0d33c4488c2
--- /dev/null
+++ b/Code/Mantid/Framework/CurveFitting/CMakeLists.txt
@@ -0,0 +1,63 @@
+set ( SRC_FILES src/BackgroundFunction.cpp
+      src/BackToBackExponential.cpp src/BFGS_Minimizer.cpp
+      src/BoundaryConstraint.cpp src/Chebyshev.cpp src/Convolution.cpp
+      src/CostFuncIgnorePosPeaks.cpp src/CostFuncLeastSquares.cpp
+      src/CostFunctionFactory.cpp src/DeltaFunction.cpp
+      src/ExpDecay.cpp src/Fit1D.cpp src/Fit.cpp
+      src/FRConjugateGradientMinimizer.cpp
+      src/FuncMinimizerFactory.cpp src/Gaussian1D.cpp src/Gaussian.cpp
+      src/GaussianLinearBG1D.cpp src/GSLFunctions.cpp
+      src/IkedaCarpenterPV.cpp src/LevenbergMarquardtMinimizer.cpp
+      src/LinearBackground.cpp src/Linear.cpp src/Lorentzian1D.cpp
+      src/Lorentzian.cpp src/PlotPeakByLogValue.cpp
+      src/PRConjugateGradientMinimizer.cpp src/Quadratic.cpp
+      src/Resolution.cpp src/SimplexMinimizer.cpp
+      src/SpecialFunctionHelper.cpp src/SplineBackground.cpp
+      src/UserFunction1D.cpp src/UserFunction.cpp )
+
+set ( INC_FILES inc/MantidCurveFitting/BackgroundFunction.h
+      inc/MantidCurveFitting/BackToBackExponential.h
+      inc/MantidCurveFitting/BFGS_Minimizer.h
+      inc/MantidCurveFitting/BoundaryConstraint.h
+      inc/MantidCurveFitting/Chebyshev.h
+      inc/MantidCurveFitting/Convolution.h
+      inc/MantidCurveFitting/CostFuncIgnorePosPeaks.h
+      inc/MantidCurveFitting/CostFuncLeastSquares.h
+      inc/MantidCurveFitting/CostFunctionFactory.h
+      inc/MantidCurveFitting/DeltaFunction.h
+      inc/MantidCurveFitting/ExpDecay.h inc/MantidCurveFitting/Fit1D.h
+      inc/MantidCurveFitting/Fit.h
+      inc/MantidCurveFitting/FRConjugateGradientMinimizer.h
+      inc/MantidCurveFitting/FuncMinimizerFactory.h
+      inc/MantidCurveFitting/Gaussian1D.h
+      inc/MantidCurveFitting/Gaussian.h
+      inc/MantidCurveFitting/GaussianLinearBG1D.h
+      inc/MantidCurveFitting/GSLFunctions.h
+      inc/MantidCurveFitting/ICostFunction.h
+      inc/MantidCurveFitting/IFuncMinimizer.h
+      inc/MantidCurveFitting/IkedaCarpenterPV.h
+      inc/MantidCurveFitting/LevenbergMarquardtMinimizer.h
+      inc/MantidCurveFitting/LinearBackground.h
+      inc/MantidCurveFitting/Linear.h
+      inc/MantidCurveFitting/Lorentzian1D.h
+      inc/MantidCurveFitting/Lorentzian.h
+      inc/MantidCurveFitting/PlotPeakByLogValue.h
+      inc/MantidCurveFitting/PRConjugateGradientMinimizer.h
+      inc/MantidCurveFitting/Quadratic.h
+      inc/MantidCurveFitting/Resolution.h
+      inc/MantidCurveFitting/SimplexMinimizer.h
+      inc/MantidCurveFitting/SpecialFunctionSupport.h
+      inc/MantidCurveFitting/SplineBackground.h
+      inc/MantidCurveFitting/UserFunction1D.h
+      inc/MantidCurveFitting/UserFunction.h )
+
+# Add the target for this directory
+add_library ( CurveFitting ${SRC_FILES} ${INC_FILES})
+# Set the name of the generated library
+set_target_properties ( CurveFitting PROPERTIES OUTPUT_NAME MantidCurveFitting )
+# Add to the 'Framework' group in VS
+set_property ( TARGET CurveFitting PROPERTY FOLDER "Framework" )
+
+include_directories ( inc )
+
+target_link_libraries ( CurveFitting ${MANTIDLIBS} ${GSL_LIBRARIES} )
\ No newline at end of file
diff --git a/Code/Mantid/Framework/DataHandling/CMakeLists.txt b/Code/Mantid/Framework/DataHandling/CMakeLists.txt
new file mode 100644
index 00000000000..f85dfd65ca0
--- /dev/null
+++ b/Code/Mantid/Framework/DataHandling/CMakeLists.txt
@@ -0,0 +1,89 @@
+set ( SRC_FILES src/CreateSampleShape.cpp src/DefineGaugeVolume.cpp
+      src/FindDetectorsInShape.cpp src/GetMaskedDetectors.cpp
+      src/GroupDetectors2.cpp src/GroupDetectors.cpp
+      src/ISISDataArchive.cpp src/LoadAscii.cpp src/LoadCanSAS1D.cpp
+      src/Load.cpp src/LoadDAE.cpp src/LoadDAE/idc.cpp
+      src/LoadDAE/isisds_command.cpp src/LoadDetectorInfo.cpp
+      src/LoadEmptyInstrument.cpp src/LoadEventPreNeXus.cpp
+      src/LoadGSS.cpp src/LoadInstrument.cpp
+      src/LoadInstrumentFromRaw.cpp src/LoadLog.cpp
+      src/LoadLOQDistancesFromRaw.cpp src/LoadMappingTable.cpp
+      src/LoadParameterFile.cpp src/LoadPreNeXusMonitors.cpp
+      src/LoadRaw2.cpp src/LoadRaw3.cpp src/LoadRawBin0.cpp
+      src/LoadRaw/byte_rel_comp.cpp src/LoadRaw.cpp
+      src/LoadRawHelper.cpp src/LoadRaw/isisraw2.cpp
+      src/LoadRaw/isisraw.cpp src/LoadRaw/item_struct.cpp
+      src/LoadRawSpectrum0.cpp src/LoadRaw/vms_convert.cpp
+      src/LoadRKH.cpp src/LoadSampleDetailsFromRaw.cpp
+      src/LoadSNSspec.cpp src/LoadSpec.cpp src/LoadSPE.cpp
+      src/LoadSpice2D.cpp src/ManagedRawFileWorkspace2D.cpp
+      src/MaskDetectors.cpp src/MaskDetectorsInShape.cpp
+      src/MoveInstrumentComponent.cpp src/RawFileInfo.cpp
+      src/RotateInstrumentComponent.cpp src/SaveAscii.cpp
+      src/SaveCanSAS1D.cpp src/SaveCSV.cpp src/SaveDASC.cpp
+      src/SaveFocusedXYE.cpp src/SaveGSS.cpp src/SavePHX.cpp
+      src/SaveRKH.cpp src/SaveSPE.cpp src/SaveVTK.cpp
+      src/SetScalingPSD.cpp src/UpdateInstrumentFromRaw.cpp )
+
+set ( INC_FILES inc/MantidDataHandling/CreateSampleShape.h
+      inc/MantidDataHandling/DefineGaugeVolume.h
+      inc/MantidDataHandling/FindDetectorsInShape.h
+      inc/MantidDataHandling/GetMaskedDetectors.h
+      inc/MantidDataHandling/GroupDetectors2.h
+      inc/MantidDataHandling/GroupDetectors.h
+      inc/MantidDataHandling/ISISDataArchive.h
+      inc/MantidDataHandling/LoadAscii.h
+      inc/MantidDataHandling/LoadCanSAS1D.h
+      inc/MantidDataHandling/LoadDAE.h
+      inc/MantidDataHandling/LoadDetectorInfo.h
+      inc/MantidDataHandling/LoadEmptyInstrument.h
+      inc/MantidDataHandling/LoadEventPreNeXus.h
+      inc/MantidDataHandling/LoadGSS.h inc/MantidDataHandling/Load.h
+      inc/MantidDataHandling/LoadInstrumentFromRaw.h
+      inc/MantidDataHandling/LoadInstrument.h
+      inc/MantidDataHandling/LoadLog.h
+      inc/MantidDataHandling/LoadLOQDistancesFromRaw.h
+      inc/MantidDataHandling/LoadMappingTable.h
+      inc/MantidDataHandling/LoadParameterFile.h
+      inc/MantidDataHandling/LoadPreNeXusMonitors.h
+      inc/MantidDataHandling/LoadRaw2.h
+      inc/MantidDataHandling/LoadRaw3.h
+      inc/MantidDataHandling/LoadRawBin0.h
+      inc/MantidDataHandling/LoadRaw.h
+      inc/MantidDataHandling/LoadRawHelper.h
+      inc/MantidDataHandling/LoadRawSpectrum0.h
+      inc/MantidDataHandling/LoadRKH.h
+      inc/MantidDataHandling/LoadSampleDetailsFromRaw.h
+      inc/MantidDataHandling/LoadSNSspec.h
+      inc/MantidDataHandling/LoadSpec.h
+      inc/MantidDataHandling/LoadSPE.h
+      inc/MantidDataHandling/LoadSpice2D.h
+      inc/MantidDataHandling/ManagedRawFileWorkspace2D.h
+      inc/MantidDataHandling/MaskDetectors.h
+      inc/MantidDataHandling/MaskDetectorsInShape.h
+      inc/MantidDataHandling/MoveInstrumentComponent.h
+      inc/MantidDataHandling/RawFileInfo.h
+      inc/MantidDataHandling/RotateInstrumentComponent.h
+      inc/MantidDataHandling/SaveAscii.h
+      inc/MantidDataHandling/SaveCanSAS1D.h
+      inc/MantidDataHandling/SaveCSV.h
+      inc/MantidDataHandling/SaveDASC.h
+      inc/MantidDataHandling/SaveFocusedXYE.h
+      inc/MantidDataHandling/SaveGSS.h
+      inc/MantidDataHandling/SavePHX.h
+      inc/MantidDataHandling/SaveRKH.h
+      inc/MantidDataHandling/SaveSPE.h
+      inc/MantidDataHandling/SaveVTK.h
+      inc/MantidDataHandling/SetScalingPSD.h
+      inc/MantidDataHandling/UpdateInstrumentFromRaw.h )
+
+# Add the target for this directory
+add_library ( DataHandling ${SRC_FILES} ${INC_FILES})
+# Set the name of the generated library
+set_target_properties ( DataHandling PROPERTIES OUTPUT_NAME MantidDataHandling )
+# Add to the 'Framework' group in VS
+set_property ( TARGET DataHandling PROPERTY FOLDER "Framework" )
+
+include_directories ( inc )
+
+target_link_libraries ( DataHandling ${MANTIDLIBS} )
\ No newline at end of file
diff --git a/Code/Mantid/Framework/DataObjects/CMakeLists.txt b/Code/Mantid/Framework/DataObjects/CMakeLists.txt
new file mode 100644
index 00000000000..c66524fd7fc
--- /dev/null
+++ b/Code/Mantid/Framework/DataObjects/CMakeLists.txt
@@ -0,0 +1,34 @@
+set ( SRC_FILES src/AbsManagedWorkspace2D.cpp
+      src/CompressedWorkspace2D.cpp src/EventList.cpp
+      src/EventWorkspace.cpp src/Histogram1D.cpp
+      src/ManagedDataBlock2D.cpp src/ManagedWorkspace2D.cpp
+      src/TableColumn.cpp src/TableWorkspace.cpp src/Workspace1D.cpp
+      src/Workspace2D.cpp src/WorkspaceSingleValue.cpp )
+
+set ( INC_FILES inc/MantidDataObjects/AbsManagedWorkspace2D.h
+      inc/MantidDataObjects/CompressedWorkspace2D.h
+      inc/MantidDataObjects/EventList.h
+      inc/MantidDataObjects/EventWorkspace.h
+      inc/MantidDataObjects/Histogram1D.h
+      inc/MantidDataObjects/ManagedDataBlock2D.h
+      inc/MantidDataObjects/ManagedWorkspace2D.h
+      inc/MantidDataObjects/TableColumn.h
+      inc/MantidDataObjects/TablePointerColumn.h
+      inc/MantidDataObjects/TableWorkspace.h
+      inc/MantidDataObjects/Workspace1D.h
+      inc/MantidDataObjects/Workspace2D.h
+      inc/MantidDataObjects/WorkspaceSingleValue.h )
+
+# For Windows:
+add_definitions ( -DIN_MANTID_DATA_OBJECTS )
+
+# Add the target for this directory
+add_library ( DataObjects ${SRC_FILES} ${INC_FILES})
+# Set the name of the generated library
+set_target_properties ( DataObjects PROPERTIES OUTPUT_NAME MantidDataObjects )
+# Add to the 'Framework' group in VS
+set_property ( TARGET DataObjects PROPERTY FOLDER "Framework" )
+
+include_directories ( ${ZLIB_INCLUDE_DIRS} )
+	  
+target_link_libraries ( DataObjects ${MANTIDLIBS} ${ZLIB_LIBRARIES} )
\ No newline at end of file
diff --git a/Code/Mantid/Framework/Geometry/CMakeLists.txt b/Code/Mantid/Framework/Geometry/CMakeLists.txt
new file mode 100644
index 00000000000..da1043b5b51
--- /dev/null
+++ b/Code/Mantid/Framework/Geometry/CMakeLists.txt
@@ -0,0 +1,159 @@
+set ( SRC_FILES src/IDetector.cpp src/IInstrument.cpp
+      src/InstrumentRayTracer.cpp src/IObjComponent.cpp src/Quat.cpp
+      src/V3D.cpp src/Instrument/CompAssembly.cpp
+      src/Instrument/Component.cpp src/Instrument/Detector.cpp
+      src/Instrument/DetectorGroup.cpp src/Instrument/FitParameter.cpp
+      src/Instrument/Instrument.cpp src/Instrument/ObjCompAssembly.cpp
+      src/Instrument/ObjComponent.cpp src/Instrument/Parameter.cpp
+      src/Instrument/ParameterMap.cpp
+      src/Instrument/ParametrizedComponent.cpp
+      src/Instrument/ParCompAssembly.cpp
+      src/Instrument/ParComponentFactory.cpp
+      src/Instrument/ParDetector.cpp src/Instrument/ParInstrument.cpp
+      src/Instrument/ParObjCompAssembly.cpp
+      src/Instrument/ParObjComponent.cpp
+      src/Instrument/ParRectangularDetector.cpp
+      src/Instrument/RectangularDetector.cpp
+      src/Instrument/XMLlogfile.cpp src/Math/Acomp.cpp
+      src/Math/Algebra.cpp src/Math/BnId.cpp src/Math/mathSupport.cpp
+      src/Math/MatrixBase.cpp src/Math/Matrix.cpp
+      src/Math/PolyBase.cpp src/Math/PolyFunction.cpp
+      src/Math/PolyVar.cpp src/Math/PolyVarOne.cpp
+      src/Math/RegexSupport.cpp src/Math/RotCounter.cpp
+      src/Math/SupportGeometry.cpp src/Math/Triple.cpp
+      src/MDGeometry/MDDimension.cpp src/MDGeometry/MDDimensionRes.cpp
+      src/MDGeometry/MDGeometryBasis.cpp src/MDGeometry/MDGeometry.cpp
+      src/MDGeometry/MDGeometryDescription.cpp
+      src/Objects/BoundingBox.cpp src/Objects/Material.cpp
+      src/Objects/Object.cpp src/Objects/RuleItems.cpp
+      src/Objects/Rules.cpp src/Objects/ShapeFactory.cpp
+      src/Objects/Track.cpp src/Rendering/BitmapGeometryHandler.cpp
+      src/Rendering/CacheGeometryGenerator.cpp
+      src/Rendering/CacheGeometryHandler.cpp
+      src/Rendering/CacheGeometryRenderer.cpp
+      src/Rendering/GeometryHandler.cpp
+      src/Rendering/GluGeometryHandler.cpp
+      src/Rendering/GluGeometryRenderer.cpp
+      src/Rendering/OCGeometryGenerator.cpp
+      src/Rendering/OCGeometryHandler.cpp
+      src/Rendering/OCGeometryRenderer.cpp
+      src/Rendering/vtkGeometryCacheReader.cpp
+      src/Rendering/vtkGeometryCacheWriter.cpp src/Surfaces/Cone.cpp
+      src/Surfaces/Cylinder.cpp src/Surfaces/General.cpp
+      src/Surfaces/Line.cpp src/Surfaces/LineIntersectVisit.cpp
+      src/Surfaces/Plane.cpp src/Surfaces/Quadratic.cpp
+      src/Surfaces/Sphere.cpp src/Surfaces/Surface.cpp
+      src/Surfaces/SurfaceFactory.cpp src/Surfaces/Torus.cpp )
+
+set ( INC_FILES inc/MantidGeometry/ICompAssembly.h
+      inc/MantidGeometry/IComponent.h inc/MantidGeometry/IDetector.h
+      inc/MantidGeometry/IInstrument.h
+      inc/MantidGeometry/IObjComponent.h
+      inc/MantidGeometry/IRectangularDetector.h
+      inc/MantidGeometry/Quat.h inc/MantidGeometry/Tolerance.h
+      inc/MantidGeometry/V3D.h
+      inc/MantidGeometry/Instrument/CompAssembly.h
+      inc/MantidGeometry/Instrument/Component.h
+      inc/MantidGeometry/Instrument/DetectorGroup.h
+      inc/MantidGeometry/Instrument/Detector.h
+      inc/MantidGeometry/Instrument/FitParameter.h
+      inc/MantidGeometry/Instrument/Instrument.h
+      inc/MantidGeometry/Instrument/ObjCompAssembly.h
+      inc/MantidGeometry/Instrument/ObjComponent.h
+      inc/MantidGeometry/Instrument/ParameterFactory.h
+      inc/MantidGeometry/Instrument/Parameter.h
+      inc/MantidGeometry/Instrument/ParameterMap.h
+      inc/MantidGeometry/Instrument/ParametrizedComponent.h
+      inc/MantidGeometry/Instrument/ParCompAssembly.h
+      inc/MantidGeometry/Instrument/ParComponentFactory.h
+      inc/MantidGeometry/Instrument/ParDetector.h
+      inc/MantidGeometry/Instrument/ParInstrument.h
+      inc/MantidGeometry/Instrument/ParObjCompAssembly.h
+      inc/MantidGeometry/Instrument/ParObjComponent.h
+      inc/MantidGeometry/Instrument/ParRectangularDetector.h
+      inc/MantidGeometry/Instrument/RectangularDetector.h
+      inc/MantidGeometry/Instrument/XMLlogfile.h
+      inc/MantidGeometry/Math/Acomp.h
+      inc/MantidGeometry/Math/Algebra.h inc/MantidGeometry/Math/BnId.h
+      inc/MantidGeometry/Math/MapSupport.h
+      inc/MantidGeometry/Math/mathSupport.h
+      inc/MantidGeometry/Math/MatrixBase.h
+      inc/MantidGeometry/Math/Matrix.h
+      inc/MantidGeometry/Math/PolyBase.h
+      inc/MantidGeometry/Math/PolyFunction.h
+      inc/MantidGeometry/Math/PolyVar.h
+      inc/MantidGeometry/Math/RegexSupport.h
+      inc/MantidGeometry/Math/RotCounter.h
+      inc/MantidGeometry/Math/Triple.h
+      inc/MantidGeometry/MDGeometry/MDDimension.h
+      inc/MantidGeometry/MDGeometry/MDDimensionRes.h
+      inc/MantidGeometry/MDGeometry/MDGeometryBasis.h
+      inc/MantidGeometry/MDGeometry/MDGeometryDescription.h
+      inc/MantidGeometry/MDGeometry/MDGeometry.h
+      inc/MantidGeometry/MDGeometry/MDWorkspaceConstants.h
+      inc/MantidGeometry/Objects/BoundingBox.h
+      inc/MantidGeometry/Objects/InstrumentRayTracer.h
+      inc/MantidGeometry/Objects/Material.h
+      inc/MantidGeometry/Objects/Object.h
+      inc/MantidGeometry/Objects/Rules.h
+      inc/MantidGeometry/Objects/ShapeFactory.h
+      inc/MantidGeometry/Objects/Track.h
+      inc/MantidGeometry/Rendering/BitmapGeometryHandler.h
+      inc/MantidGeometry/Rendering/CacheGeometryGenerator.h
+      inc/MantidGeometry/Rendering/CacheGeometryHandler.h
+      inc/MantidGeometry/Rendering/CacheGeometryRenderer.h
+      inc/MantidGeometry/Rendering/GeometryHandler.h
+      inc/MantidGeometry/Rendering/GluGeometryHandler.h
+      inc/MantidGeometry/Rendering/GluGeometryRenderer.h
+      inc/MantidGeometry/Rendering/OCGeometryGenerator.h
+      inc/MantidGeometry/Rendering/OCGeometryHandler.h
+      inc/MantidGeometry/Rendering/OCGeometryRenderer.h
+      inc/MantidGeometry/Rendering/OpenCascadeConfig.h
+      inc/MantidGeometry/Rendering/vtkGeometryCacheReader.h
+      inc/MantidGeometry/Rendering/vtkGeometryCacheWriter.h
+      inc/MantidGeometry/Surfaces/BaseVisit.h
+      inc/MantidGeometry/Surfaces/Cone.h
+      inc/MantidGeometry/Surfaces/Cylinder.h
+      inc/MantidGeometry/Surfaces/General.h
+      inc/MantidGeometry/Surfaces/Line.h
+      inc/MantidGeometry/Surfaces/LineIntersectVisit.h
+      inc/MantidGeometry/Surfaces/Plane.h
+      inc/MantidGeometry/Surfaces/Quadratic.h
+      inc/MantidGeometry/Surfaces/Sphere.h
+      inc/MantidGeometry/Surfaces/SurfaceFactory.h
+      inc/MantidGeometry/Surfaces/Surface.h )
+
+set ( TEST_FILES test/AcompTest.h
+      test/AlgebraTest.h 
+      test/BnIdTest.h
+      test/BoundingBoxTest.h)
+
+# For Windows:
+add_definitions ( -DIN_MANTID_GEOMETRY )
+
+# Find 'local' dependencies
+find_package ( OpenGL REQUIRED )
+# FindOpenGL does not (as of CMake 2.6.4) take notice of the REQUIRED
+if ( NOT OPENGL_FOUND )
+  message ( FATAL_ERROR "OpenGL was not found." )
+endif ()
+
+find_package ( OpenCascade REQUIRED )
+
+include_directories ( ${OPENCASCADE_INCLUDE_DIR} )
+include_directories ( ${OPENGL_INCLUDE_DIR} )
+include_directories ( ${GSL_INCLUDE_DIR} )
+
+# Add the target for this directory
+add_library ( Geometry ${SRC_FILES} ${INC_FILES})
+# Set the name of the generated library
+set_target_properties ( Geometry PROPERTIES OUTPUT_NAME MantidGeometry )
+# Add to the 'Framework' group in VS
+set_property ( TARGET Geometry PROPERTY FOLDER "Framework" )
+
+target_link_libraries ( Geometry ${MANTIDLIBS} ${OPENCASCADE_LIBRARIES} ${OPENGL_LIBRARIES} ${GSL_LIBRARIES} )
+
+if ( CXXTEST_FOUND )
+  cxxtest_add_test ( GeometryTest ${TEST_FILES} )
+  target_link_libraries( GeometryTest Geometry )
+endif ()
\ No newline at end of file
diff --git a/Code/Mantid/Framework/ICat/CMakeLists.txt b/Code/Mantid/Framework/ICat/CMakeLists.txt
new file mode 100644
index 00000000000..074eb45fbe1
--- /dev/null
+++ b/Code/Mantid/Framework/ICat/CMakeLists.txt
@@ -0,0 +1,40 @@
+set ( SRC_FILES src/AdvancedSearch.cpp src/DownloadDataFile.cpp
+      src/ErrorHandling.cpp src/GetDataFiles.cpp src/GetDataSets.cpp
+      src/ICat3Catalog.cpp src/ICatHelper.cpp
+      src/ListInstruments.cpp src/ListInvestigationTypes.cpp
+      src/Login.cpp src/Logout.cpp src/MyDataSearch.cpp src/Search.cpp
+      src/SearchParam.cpp src/GSoapGenerated/soapC.cpp
+      src/GSoapGenerated/soapICATPortBindingProxy.cpp
+      src/GSoap/stdsoap2.cpp )
+
+set ( INC_FILES inc/MantidICat/AdvancedSearch.h
+      inc/MantidICat/DownloadDataFile.h inc/MantidICat/ErrorHandling.h
+      inc/MantidICat/GetDataFiles.h inc/MantidICat/GetDataSets.h
+      inc/MantidICat/ICat3Catalog.h inc/MantidICat/ICatExport.h
+      inc/MantidICat/ICatHelper.h inc/MantidICat/ListInstruments.h
+      inc/MantidICat/ListInvestigationTypes.h inc/MantidICat/Login.h
+      inc/MantidICat/Logout.h inc/MantidICat/MyDataSearch.h
+      inc/MantidICat/Search.h inc/MantidICat/SearchParam.h
+      inc/MantidICat/Session.h inc/MantidICat/GSoapGenerated/soapH.h
+      inc/MantidICat/GSoapGenerated/soapICATPortBindingProxy.h
+      inc/MantidICat/GSoapGenerated/soapStub.h
+      inc/MantidICat/GSoap/stdsoap2.h )
+
+# For Windows:
+add_definitions ( -DIN_MANTID_ICAT )
+
+# Add ssl dependency
+find_package ( OpenSSL REQUIRED )
+include_directories ( ${OPENSSL_INCLUDE_DIR} )
+add_definitions ( -DWITH_OPENSSL -DWITH_NONAMESPACES )
+
+# Add the target for this directory
+add_library ( ICat ${SRC_FILES} ${INC_FILES})
+# Set the name of the generated library
+set_target_properties ( ICat PROPERTIES OUTPUT_NAME MantidICat )
+# Add to the 'Framework' group in VS
+set_property ( TARGET ICat PROPERTY FOLDER "Framework" )
+
+include_directories ( inc )
+
+target_link_libraries ( ICat ${MANTIDLIBS} ${OPENSSL_LIBRARIES} )
\ No newline at end of file
diff --git a/Code/Mantid/Framework/Kernel/CMakeLists.txt b/Code/Mantid/Framework/Kernel/CMakeLists.txt
new file mode 100644
index 00000000000..dfc751205a3
--- /dev/null
+++ b/Code/Mantid/Framework/Kernel/CMakeLists.txt
@@ -0,0 +1,87 @@
+set ( SRC_FILES src/ArrayProperty.cpp src/BinFinder.cpp
+      src/ConfigService.cpp src/DateAndTime.cpp src/DateValidator.cpp
+      src/DllOpen.cpp src/EnvironmentHistory.cpp src/Exception.cpp
+      src/FacilityInfo.cpp src/FileValidator.cpp src/FilterChannel.cpp
+      src/Glob.cpp src/InstrumentInfo.cpp src/Interpolation.cpp
+      src/IPropertyManager.cpp src/LibraryManager.cpp
+      src/LibraryWrapper.cpp src/ListValidator.cpp src/LogFilter.cpp
+      src/Logger.cpp src/LogParser.cpp src/MandatoryValidator.cpp
+      src/MaskedProperty.cpp src/NeutronAtom.cpp src/Property.cpp
+      src/PropertyHistory.cpp src/PropertyManager.cpp
+      src/PropertyManagerOwner.cpp src/PropertyWithValue.cpp
+      src/RebinParamsValidator.cpp src/SignalChannel.cpp
+      src/SingletonHolder.cpp src/SupportBasic.cpp
+      src/SupportKernel.cpp src/System.cpp src/ThreadSafeLogStream.cpp
+      src/Timer.cpp src/TimeSeriesProperty.cpp src/TimeSplitter.cpp
+      src/Unit.cpp src/UnitFactory.cpp src/VectorHelper.cpp)
+
+set ( INC_FILES inc/MantidKernel/ArrayProperty.h
+      inc/MantidKernel/BinaryFile.h inc/MantidKernel/BinFinder.h
+      inc/MantidKernel/BoundedValidator.h inc/MantidKernel/Cache.h
+      inc/MantidKernel/ConfigService.h inc/MantidKernel/cow_ptr.h
+      inc/MantidKernel/DataService.h inc/MantidKernel/DateAndTime.h
+      inc/MantidKernel/DateValidator.h inc/MantidKernel/DllExport.h
+      inc/MantidKernel/DllOpen.h
+      inc/MantidKernel/DocumentationHeader.h
+      inc/MantidKernel/DynamicFactory.h
+      inc/MantidKernel/EnvironmentHistory.h
+      inc/MantidKernel/Exception.h inc/MantidKernel/FacilityInfo.h
+      inc/MantidKernel/Fast_Exponential.h
+      inc/MantidKernel/FileValidator.h
+      inc/MantidKernel/FilterChannel.h inc/MantidKernel/Glob.h
+      inc/MantidKernel/Instantiator.h
+      inc/MantidKernel/InstrumentInfo.h
+      inc/MantidKernel/Interpolation.h
+      inc/MantidKernel/IPropertyManager.h
+      inc/MantidKernel/IValidator.h inc/MantidKernel/LibraryManager.h
+      inc/MantidKernel/LibraryWrapper.h
+      inc/MantidKernel/ListValidator.h inc/MantidKernel/LogFilter.h
+      inc/MantidKernel/Logger.h inc/MantidKernel/LogParser.h
+      inc/MantidKernel/MandatoryValidator.h
+      inc/MantidKernel/MantidVersion.h
+      inc/MantidKernel/MaskedProperty.h inc/MantidKernel/MRUList.h
+      inc/MantidKernel/MultiThreaded.h inc/MantidKernel/NeutronAtom.h
+      inc/MantidKernel/NullValidator.h
+      inc/MantidKernel/PhysicalConstants.h inc/MantidKernel/Property.h
+      inc/MantidKernel/PropertyHistory.h
+      inc/MantidKernel/PropertyManager.h
+      inc/MantidKernel/PropertyManagerOwner.h
+      inc/MantidKernel/PropertyWithValue.h
+      inc/MantidKernel/RebinParamsValidator.h
+      inc/MantidKernel/SignalChannel.h
+      inc/MantidKernel/SingletonHolder.h inc/MantidKernel/Support.h
+      inc/MantidKernel/SupportTempCode.h inc/MantidKernel/System.h
+      inc/MantidKernel/ThreadSafeLogStream.h inc/MantidKernel/Timer.h
+      inc/MantidKernel/TimeSeriesProperty.h
+      inc/MantidKernel/TimeSplitter.h inc/MantidKernel/UnitFactory.h
+      inc/MantidKernel/Unit.h inc/MantidKernel/VectorHelper.h)
+
+set ( TEST_FILES test/ArrayPropertyTest.h 
+                 #test/BinaryFileTest.h
+                 test/BinFinderTest.h 
+                 test/BoundedValidatorTest.h )
+
+# For Windows:
+add_definitions ( -DIN_MANTID_KERNEL )
+
+# Add the target for this directory
+add_library ( Kernel ${SRC_FILES} ${INC_FILES})
+# Set the name of the generated library
+set_target_properties ( Kernel PROPERTIES OUTPUT_NAME MantidKernel )
+# Add to the 'Framework' group in VS
+set_property ( TARGET Kernel PROPERTY FOLDER "Framework" )
+
+target_link_libraries ( Kernel ${MANTIDLIBS} )
+
+
+add_custom_command ( TARGET Kernel POST_BUILD 
+                     COMMAND ${CMAKE_COMMAND}
+                     ARGS -E copy_if_different 
+                       ${CMAKE_CURRENT_SOURCE_DIR}/../Properties/Mantid.properties
+                       ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} 
+)
+
+if ( CXXTEST_FOUND )
+  cxxtest_add_test ( KernelTest ${TEST_FILES} )
+  target_link_libraries( KernelTest Kernel )
+endif ()
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/MantidVersion.h.in b/Code/Mantid/Framework/Kernel/inc/MantidKernel/MantidVersion.h.in
new file mode 100644
index 00000000000..029365f31ff
--- /dev/null
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/MantidVersion.h.in
@@ -0,0 +1,3 @@
+#ifndef MANTID_VERSION
+#define MANTID_VERSION "1.1.@Framework_WC_REVISION@"
+#endif
diff --git a/Code/Mantid/Framework/Nexus/CMakeLists.txt b/Code/Mantid/Framework/Nexus/CMakeLists.txt
new file mode 100644
index 00000000000..3c8c10a4a52
--- /dev/null
+++ b/Code/Mantid/Framework/Nexus/CMakeLists.txt
@@ -0,0 +1,43 @@
+set ( SRC_FILES src/LoadInstrumentFromNexus.cpp
+      src/LoadInstrumentFromSNSNexus.cpp src/LoadISISNexus2.cpp
+      src/LoadISISNexus.cpp src/LoadLogsFromSNSNexus.cpp
+      src/LoadMuonLog.cpp src/LoadMuonNexus2.cpp src/LoadMuonNexus.cpp
+      src/LoadNeXus.cpp src/LoadNexusMonitors.cpp
+      src/LoadNexusProcessed.cpp src/LoadSNSEventNexus.cpp
+      src/LoadSNSNexus.cpp src/LoadTOFRawNeXus.cpp
+      src/MuonNexusReader.cpp src/NexusClasses.cpp
+      src/NeXusException.cpp src/NeXusFile.cpp src/NexusFileIO.cpp
+      src/NeXusStream.cpp src/SaveNeXus.cpp src/SaveNexusProcessed.cpp
+      src/SaveNXSPE.cpp )
+
+set ( INC_FILES inc/MantidNexus/LoadInstrumentFromNexus.h
+      inc/MantidNexus/LoadInstrumentFromSNSNexus.h
+      inc/MantidNexus/LoadISISNexus2.h inc/MantidNexus/LoadISISNexus.h
+      inc/MantidNexus/LoadLogsFromSNSNexus.h
+      inc/MantidNexus/LoadMuonLog.h inc/MantidNexus/LoadMuonNexus2.h
+      inc/MantidNexus/LoadMuonNexus.h inc/MantidNexus/LoadNeXus.h
+      inc/MantidNexus/LoadNexusMonitors.h
+      inc/MantidNexus/LoadNexusProcessed.h
+      inc/MantidNexus/LoadSNSEventNexus.h
+      inc/MantidNexus/LoadSNSNexus.h inc/MantidNexus/LoadTOFRawNeXus.h
+      inc/MantidNexus/MuonNexusReader.h inc/MantidNexus/NexusClasses.h
+      inc/MantidNexus/NexusFileIO.h inc/MantidNexus/SaveNeXus.h
+      inc/MantidNexus/SaveNexusProcessed.h inc/MantidNexus/SaveNXSPE.h )
+
+# For Windows:
+add_definitions ( -DIN_MANTID_NEXUS -DIN_NEXUS_CPP_LIBRARY )
+
+# Add the dependency on the nexus library
+find_package ( Nexus REQUIRED )
+include_directories ( ${NEXUS_INCLUDE_DIR} )
+
+# Add the target for this directory
+add_library ( Nexus ${SRC_FILES} ${INC_FILES})
+# Set the name of the generated library
+set_target_properties ( Nexus PROPERTIES OUTPUT_NAME MantidNexus )
+# Add to the 'Framework' group in VS
+set_property ( TARGET Nexus PROPERTY FOLDER "Framework" )
+
+include_directories ( inc )
+
+target_link_libraries ( Nexus ${MANTIDLIBS} ${NEXUS_LIBRARIES} )
\ No newline at end of file
diff --git a/Code/Mantid/Framework/PythonAPI/CMakeLists.txt b/Code/Mantid/Framework/PythonAPI/CMakeLists.txt
new file mode 100644
index 00000000000..bbc38e4d485
--- /dev/null
+++ b/Code/Mantid/Framework/PythonAPI/CMakeLists.txt
@@ -0,0 +1,61 @@
+set ( SRC_FILES src/api_exports.cpp src/FrameworkManagerProxy.cpp
+      src/geometry_exports.cpp src/kernel_exports.cpp
+      src/MantidVecHelper.cpp src/PyAlgorithmWrapper.cpp
+      src/PythonInterfaceFunctions.cpp src/PythonWrapper.cpp
+      src/SimplePythonAPI.cpp src/WorkspaceProxies.cpp )
+
+set ( INC_FILES inc/MantidPythonAPI/api_exports.h
+      inc/MantidPythonAPI/FrameworkManagerProxy.h
+      inc/MantidPythonAPI/kernel_exports.h
+      inc/MantidPythonAPI/MantidVecHelper.h
+      inc/MantidPythonAPI/PyAlgorithmWrapper.h
+      inc/MantidPythonAPI/PythonInterfaceFunctions.h
+      inc/MantidPythonAPI/SimplePythonAPI.h
+      inc/MantidPythonAPI/std_operator_definitions.h
+      inc/MantidPythonAPI/stl_proxies.h
+      inc/MantidPythonAPI/WorkspaceProxies.h )
+
+# Add local dependencies
+set ( Boost_USE_DEBUG_PYTHON TRUE )
+find_package ( Boost REQUIRED python )
+add_definitions ( -DBOOST_DEBUG_PYTHON -DBOOST_PYTHON_NO_LIB )
+
+find_package ( Numpy REQUIRED )
+include_directories ( ${PYTHON_NUMPY_INCLUDE_DIR} )
+
+include_directories ( inc )
+
+# Add the target for this directory
+add_library ( PythonAPI ${SRC_FILES} ${INC_FILES})
+# Set the name of the generated library
+set_target_properties ( PythonAPI PROPERTIES OUTPUT_NAME MantidPythonAPI )
+# Add to the 'Framework' group in VS
+set_property ( TARGET PythonAPI PROPERTY FOLDER "Framework" )
+# Library name needs to end in .pyd for Windows
+if ( WIN32 )
+    set_target_properties ( PythonAPI PROPERTIES SUFFIX .pyd )
+endif ()
+# Debug python library expects imported module names to end in _d
+if ( PYTHON_DEBUG_LIBRARY )
+    set_target_properties ( PythonAPI PROPERTIES DEBUG_OUTPUT_NAME MantidPythonAPI_d )
+endif ()
+	
+target_link_libraries ( PythonAPI ${MANTIDLIBS} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} )
+
+# Now copy the required python files into the build destination
+add_custom_command ( TARGET PythonAPI POST_BUILD 
+                     COMMAND ${CMAKE_COMMAND}
+                     ARGS -E copy_if_different 
+                               ${CMAKE_CURRENT_SOURCE_DIR}/MantidFramework.py 
+                               ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )
+add_custom_command ( TARGET PythonAPI POST_BUILD 
+                     COMMAND ${CMAKE_COMMAND}
+                     ARGS -E copy_if_different 
+                               ${CMAKE_CURRENT_SOURCE_DIR}/__init__.py 
+                               ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )
+add_custom_command ( TARGET PythonAPI POST_BUILD 
+                     COMMAND ${CMAKE_COMMAND}
+                     ARGS -E copy_if_different 
+                               ${CMAKE_CURRENT_SOURCE_DIR}/setup.py 
+                               ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )
+
-- 
GitLab