From f3fe790afe782ea3b27621c03fdafc23e2273b07 Mon Sep 17 00:00:00 2001
From: Norihiro Watanabe <norihiro.watanabe@ufz.de>
Date: Fri, 13 Jan 2012 15:58:38 +0100
Subject: [PATCH] changed CMake files to group source files by a directory

---
 Base/CMakeLists.txt    | 10 +++----
 GeoLib/CMakeLists.txt  | 18 +++---------
 MathLib/CMakeLists.txt | 62 ++++++++++++++++++++++++++++++------------
 3 files changed, 52 insertions(+), 38 deletions(-)

diff --git a/Base/CMakeLists.txt b/Base/CMakeLists.txt
index c2bff2d135a..eeec59b6b12 100644
--- a/Base/CMakeLists.txt
+++ b/Base/CMakeLists.txt
@@ -1,5 +1,5 @@
 # Source files
-SET( HEADERS
+SET ( Base_Files
         binarySearch.h
         Configure.h.in
 	CPUTimeTimer.h
@@ -14,23 +14,21 @@ SET( HEADERS
 	TimeMeasurementBase.h
         uniqueListInsert.h
         wait.h
-)
-
-SET( SOURCES
 	binarySearch.cpp
 	DateTools.cpp
         CPUTimeTimer.cpp
 	RunTimeTimer.cpp
 	StringTools.cpp
 )
+SOURCE_GROUP( Base FILES ${Base_Files})
 
 # Create the library
-ADD_LIBRARY( Base STATIC ${HEADERS} ${SOURCES} )
+ADD_LIBRARY( Base STATIC ${Base_Files})
 
 SET_TARGET_PROPERTIES(Base PROPERTIES LINKER_LANGUAGE CXX)
 
 INCLUDE_DIRECTORIES(
-        ../GEOLib
+        ../GeoLib
         ../MathLib
         .
 )
diff --git a/GeoLib/CMakeLists.txt b/GeoLib/CMakeLists.txt
index c091c532b14..bde06ed7800 100644
--- a/GeoLib/CMakeLists.txt
+++ b/GeoLib/CMakeLists.txt
@@ -1,5 +1,5 @@
 # Source files
-set( SOURCES
+SET ( GeoLib_Files
 	AxisAlignedBoundingBox.cpp
 	BruteForceClosestPair.cpp
 	Color.cpp
@@ -15,10 +15,6 @@ set( SOURCES
 	Surface.cpp
 	Triangle.cpp
 	Raster.cpp
-)
-
-# Header files
-set( HEADERS
 	AxisAlignedBoundingBox.h
 	BruteForceClosestPair.h
 	ClosestPair.h
@@ -44,28 +40,22 @@ set( HEADERS
 	Triangle.h
 	Raster.h
 )
+SOURCE_GROUP(GeoLib FILES ${GeoLib_Files})
 
 # Create the library
-add_library( GEO STATIC
-	${SOURCES}
-	${HEADERS}
-)
+ADD_LIBRARY(GeoLib STATIC ${GeoLib_Files})
 
 
 include_directories(
 	.
 	../Base
-	../FEM
-	../FileIO
 	../MathLib
-	../MSH
 )
 
 
 target_link_libraries (
-	GEO
+	GeoLib
 	Base
-	FEM
 	MathLib
 )
 
diff --git a/MathLib/CMakeLists.txt b/MathLib/CMakeLists.txt
index 9dfbbeaeb47..509a3323985 100644
--- a/MathLib/CMakeLists.txt
+++ b/MathLib/CMakeLists.txt
@@ -1,5 +1,5 @@
-# Source files
-SET( HEADERS
+#Source files grouped by a directory
+SET ( MathLib_Files
 	AnalyticalGeometry.h        
 	LinearInterpolation.h  
 	MathTools.h
@@ -8,10 +8,36 @@ SET( HEADERS
 	max.h
         sparse.h
 	vector_io.h
+	AnalyticalGeometry.cpp        
+	LinearInterpolation.cpp  
+	MathTools.cpp
+	EarClippingTriangulation.cpp  
+)
+SOURCE_GROUP( MathLib FILES ${MathLib_Files})
+
+SET ( MathLib_LinAlg_Files
 	LinAlg/MatrixBase.h
 	LinAlg/VectorNorms.h
+)
+SOURCE_GROUP( MathLib\\LinAlg FILES ${MathLib_LinAlg_Files})
+
+SET ( MathLib_LinAlg_Dense_Files
 	LinAlg/Dense/Matrix.h
-        LinAlg/Preconditioner/generateDiagPrecond.h
+)
+SOURCE_GROUP( MathLib\\LinAlg\\Dense FILES ${MathLib_LinAlg_Dense_Files})
+
+SET ( MathLib_LinAlg_Sparse_Files
+	LinAlg/Sparse/amuxCRS.h
+        LinAlg/Sparse/CRSMatrix.h
+        LinAlg/Sparse/CRSMatrixPThreads.h
+        LinAlg/Sparse/CRSMatrixOpenMP.h
+        LinAlg/Sparse/CRSSymMatrix.h
+        LinAlg/Sparse/SparseMatrixBase.h
+        LinAlg/Sparse/amuxCRS.cpp
+)
+SOURCE_GROUP( MathLib\\LinAlg\\Sparse FILES ${MathLib_LinAlg_Sparse_Files})
+
+SET ( MathLib_LinAlg_Solvers_Files
         LinAlg/Solvers/LinearSolver.h
         LinAlg/Solvers/DirectLinearSolver.h
         LinAlg/Solvers/DenseDirectLinearSolver.h
@@ -22,28 +48,21 @@ SET( HEADERS
         LinAlg/Solvers/BiCGStab.h
         LinAlg/Solvers/CG.h
         LinAlg/Solvers/GMRes.h
-	LinAlg/Sparse/amuxCRS.h
-        LinAlg/Sparse/CRSMatrix.h
-        LinAlg/Sparse/CRSMatrixPThreads.h
-        LinAlg/Sparse/CRSMatrixOpenMP.h
-        LinAlg/Sparse/CRSSymMatrix.h
-        LinAlg/Sparse/SparseMatrixBase.h
-)
-
-SET( SOURCES
-	AnalyticalGeometry.cpp        
-	LinearInterpolation.cpp  
-	MathTools.cpp
-	EarClippingTriangulation.cpp  
-        LinAlg/Sparse/amuxCRS.cpp
         LinAlg/Solvers/BiCGStab.cpp
         LinAlg/Solvers/CG.cpp
         LinAlg/Solvers/CGParallel.cpp
         LinAlg/Solvers/GMRes.cpp
 	LinAlg/Solvers/GaussAlgorithm.cpp
         LinAlg/Solvers/TriangularSolve.cpp
+)
+SOURCE_GROUP( MathLib\\LinAlg\\Solvers FILES ${MathLib_LinAlg_Solvers_Files})
+
+SET ( MathLib_LinAlg_Preconditioner_Files
+        LinAlg/Preconditioner/generateDiagPrecond.h
 	LinAlg/Preconditioner/generateDiagPrecond.cpp
 )
+SOURCE_GROUP( MathLib\\LinAlg\\Preconditioner FILES ${MathLib_LinAlg_Preconditioner_Files})
+
 
 INCLUDE_DIRECTORIES (
 	.
@@ -52,7 +71,14 @@ INCLUDE_DIRECTORIES (
 )
 
 # Create the library
-ADD_LIBRARY( MathLib STATIC ${HEADERS} ${SOURCES} )
+ADD_LIBRARY( MathLib STATIC 
+	${MathLib_Files} 
+	${MathLib_LinAlg_Files} 
+	${MathLib_LinAlg_Dense_Files}
+	${MathLib_LinAlg_Sparse_Files}
+	${MathLib_LinAlg_Solvers_Files}
+	${MathLib_LinAlg_Preconditioner_Files}
+)
 
 SET_TARGET_PROPERTIES(MathLib PROPERTIES LINKER_LANGUAGE CXX)
 
-- 
GitLab