ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/CMakeLists.txt
Revision: 2026
Committed: Wed Oct 22 12:23:59 2014 UTC (10 years, 9 months ago) by gezelter
Content type: text/plain
File size: 29079 byte(s)
Log Message:
Starting to add support for UniformGradient. 
Changed Vector3d input type to a more general std::vector<RealType> input.  This change alters RNEMD and UniformField inputs.

File Contents

# User Rev Content
1 chuckv 1466 # Top level cmake script for OpenMD.
2 gezelter 1694 project(OpenMD CXX)
3     cmake_minimum_required(VERSION 2.8.5)
4 chuckv 1466
5 gezelter 1668 SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
6    
7     if (NOT CMAKE_BUILD_TYPE)
8     set(CMAKE_BUILD_TYPE "Release")
9     endif()
10    
11 gezelter 1767 IF(WIN32)
12     ADD_DEFINITIONS(/D _CRT_SECURE_NO_WARNINGS)
13     ENDIF(WIN32)
14    
15 gezelter 1694 find_package(MPI)
16     if (NOT MPI_CXX_FOUND)
17     message(STATUS "========== OpenMD Parallel Information ==========")
18     message(STATUS )
19     message(STATUS "No MPI compiler found. Perhaps you want to set one explicitly?")
20     message(STATUS "To override the default compiler, set the environment variable")
21     message(STATUS " export CXX=/full/path/to/mpic++")
22     message(STATUS "in bash or ksh or sh. In csh or tcsh, use:")
23     message(STATUS " setenv CXX /full/path/to/mpic++")
24     message(STATUS "before running the cmake command.")
25     message(STATUS )
26     message(STATUS "=================================================")
27     endif()
28     IF ( MPI_CXX_FOUND )
29     INCLUDE_DIRECTORIES(${MPI_CXX_INCLUDE_PATH})
30     ENDIF()
31    
32 gezelter 1668 include(CheckCXXCompilerFlag)
33 gezelter 1694 include(CheckIncludeFileCXX)
34     include(CheckCXXSymbolExists)
35 gezelter 1668
36 chuckv 1466 # OpenMD version number.
37 chuckv 1496 set (VERSION_MAJOR "2")
38 gezelter 1979 set (VERSION_MINOR "2")
39 chuckv 1496 set (VERSION_TINY "0")
40 gezelter 1668 option(SINGLE_PRECISION "Build Single precision (float) version" OFF)
41    
42 gezelter 1647 IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
43 gezelter 1790 IF(WIN32)
44     SET(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/openmd"
45     CACHE PATH "OpenMD install prefix" FORCE)
46     ELSE(WIN32)
47     SET(CMAKE_INSTALL_PREFIX "/usr/local/openmd"
48     CACHE PATH "OpenMD install prefix" FORCE)
49     ENDIF(WIN32)
50 gezelter 1647 ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
51 gezelter 1790 ADD_DEFINITIONS( -DFRC_PATH=${CMAKE_INSTALL_PREFIX}/forceFields )
52 chuckv 1466
53 gezelter 1647 # ---------- Setup output Directories -------------------------
54     SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY
55     ${PROJECT_BINARY_DIR}/lib
56     CACHE PATH
57     "Single directory for all shared libraries"
58     )
59     # --------- Setup the Executable output Directory -------------
60     SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY
61     ${PROJECT_BINARY_DIR}/bin
62     CACHE PATH
63     "Single directory for all Executables."
64     )
65     # --------- Setup the static library directory -------------
66     SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
67     ${PROJECT_BINARY_DIR}/lib
68     CACHE PATH
69     "Single directory for all static libraries."
70     )
71    
72 gezelter 1636 FIND_PACKAGE(Subversion)
73     IF ( Subversion_FOUND AND EXISTS ${PROJECT_SOURCE_DIR}/.svn )
74     Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
75 gezelter 1694 MESSAGE(STATUS "Current revision is ${Project_WC_REVISION}")
76 gezelter 1636 Subversion_WC_LOG(${PROJECT_SOURCE_DIR} Project)
77     SET(SVN_REV ${Project_WC_REVISION})
78 gezelter 1652 SET(GENERATELOGS "${PROJECT_SOURCE_DIR}/doc/svn2cl")
79     ADD_CUSTOM_TARGET(ChangeLog
80     COMMAND ${GENERATELOGS} "--group-by-day" "--include-rev"
81     "--linelen=78" "--output=${PROJECT_BINARY_DIR}/ChangeLog" "${PROJECT_SOURCE_DIR}"
82     )
83 gezelter 1836 ELSE()
84     SET(SVN_REV Release)
85 gezelter 1636 ENDIF()
86    
87 gezelter 1694 check_include_file_cxx(conio.h HAVE_CONIO_H)
88     check_cxx_symbol_exists(strncasecmp "string.h" HAVE_STRNCASECMP)
89 gezelter 1668
90 chuckv 1466 # Optional libraries: If we can find these, we will build with them
91     # Look for OpenBabel libraries
92 chuckv 1496 find_package(OpenBabel2)
93     IF(OPENBABEL2_FOUND)
94     SET(USE_OPENBABEL)
95     include_directories(${OPENBABEL2_INCLUDE_DIR})
96 gezelter 1694 # link libraries are added only for targets that need them.
97 gezelter 1695 ELSE(OPENBABEL2_FOUND)
98 gezelter 1705 MESSAGE(STATUS "No OpenBabel found - will not build atom2md")
99 chuckv 1496 ENDIF(OPENBABEL2_FOUND)
100    
101 gezelter 1743 find_package(Eigen3)
102     if(EIGEN3_FOUND)
103     add_definitions(-DHAVE_EIGEN -DHAVE_EIGEN3)
104     include_directories(${EIGEN3_INCLUDE_DIR})
105     else()
106     find_package(Eigen2) # find and setup Eigen2
107     if(EIGEN2_FOUND)
108     add_definitions (-DHAVE_EIGEN)
109     include_directories(${EIGEN2_INCLUDE_DIR})
110     endif()
111     endif()
112    
113 chuckv 1466 #Look for QHULL Libraries
114 gezelter 1694 find_package(Qhull)
115 chuckv 1496 IF(QHULL_FOUND)
116     SET(HAVE_QHULL 1)
117 chuckv 1500 include_directories(${QHULL_INCLUDE_DIR})
118 chuckv 1496 LINK_LIBRARIES(${QHULL_LIBRARIES})
119 gezelter 1695 ELSE(QHULL_FOUND)
120 gezelter 1705 MESSAGE(STATUS "No Qhull found - will be missing some features")
121 chuckv 1496 ENDIF(QHULL_FOUND)
122 chuckv 1466
123 chuckv 1496 # zlib stuff
124     find_package(ZLIB)
125     if(ZLIB_FOUND)
126     SET(HAVE_LIBZ 1)
127     add_definitions(-DHAVE_LIBZ)
128     include_directories(${ZLIB_INCLUDE_DIR})
129     LINK_LIBRARIES(${ZLIB_LIBRARIES})
130 gezelter 1695 ELSE(ZLIB_FOUND)
131 gezelter 1705 MESSAGE(STATUS "No zlib found - will be missing compressed dump files")
132 chuckv 1496 endif(ZLIB_FOUND)
133    
134 gezelter 1695 #FFTW3
135 gezelter 1694 IF(SINGLE_PRECISION)
136     find_package(FFTW3 COMPONENTS single)
137     else()
138     find_package(FFTW3 COMPONENTS double)
139     endif(SINGLE_PRECISION)
140     if (FFTW3_FOUND)
141     include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${FFTW3_INCLUDE_DIR})
142 chuckv 1496 SET(HAVE_LIBFFTW 1)
143 gezelter 1668 SET(HAVE_FFTW3_H 1)
144 gezelter 1694 INCLUDE_DIRECTORIES(${FFTW3_INCLUDE_DIR})
145     LINK_LIBRARIES(${FFTW3_LIBRARIES})
146 gezelter 1695 ELSE(FFTW3_FOUND)
147 gezelter 1705 MESSAGE(STATUS "No fftw3 found - will be missing some analysis modules")
148 gezelter 1694 endif (FFTW3_FOUND)
149 chuckv 1496
150 gezelter 1694
151 gezelter 1651 # add a target to generate API documentation with Doxygen
152     find_package(Doxygen)
153     if(DOXYGEN_FOUND)
154     configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile" @ONLY)
155     add_custom_target(doc
156     ${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile"
157     WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc"
158     COMMENT "Generating API documentation with Doxygen" VERBATIM
159     )
160     endif(DOXYGEN_FOUND)
161 chuckv 1496
162 gezelter 1639 FIND_PACKAGE(Perl)
163     IF(PERL_FOUND)
164     SET(PERL ${PERL_EXECUTABLE})
165     ELSE(PERL_FOUND)
166 gezelter 1695 MESSAGE(STATUS "Failed to find perl - some scripts will not be made")
167 gezelter 1639 ENDIF(PERL_FOUND)
168    
169 gezelter 1695 SET(PERL_INSTALLDIRS "site" CACHE STRING "Perl installation
170     locations")
171    
172 gezelter 1639 FIND_PACKAGE(PythonInterp)
173     IF(PYTHON_EXECUTABLE)
174     SET(PYTHON ${PYTHON_EXECUTABLE})
175     ELSE(PYTHON_EXECUTABLE)
176 gezelter 1695 MESSAGE(STATUS "Failed to find python - some scripts will not be made")
177 gezelter 1639 ENDIF(PYTHON_EXECUTABLE)
178    
179 chuckv 1496 configure_file (
180     "${PROJECT_SOURCE_DIR}/src/config.h.cmake"
181 gezelter 1655 "${PROJECT_BINARY_DIR}/config.h"
182     )
183 gezelter 1976 configure_file(
184     "${PROJECT_SOURCE_DIR}/src/utils/Revision.cpp.in"
185     "${PROJECT_BINARY_DIR}/Revision.cpp"
186     )
187    
188 gezelter 1655 include_directories("${PROJECT_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/src")
189 chuckv 1496
190 chuckv 1466 #Add executables for build
191 gezelter 1639 set (PROGRAMS
192     openmd
193     openmd_MPI
194     Dump2XYZ
195     simpleBuilder
196     StaticProps
197     DynamicProps
198 gezelter 2024 SequentialProps
199 gezelter 1639 randomBuilder
200     nanoparticleBuilder
201     thermalizer
202 gezelter 1879 recenter
203 gezelter 1639 atom2md
204     Hydro)
205 chuckv 1466
206 gezelter 1639 set(SOURCE
207 gezelter 1976 "${PROJECT_BINARY_DIR}/Revision.cpp"
208 gezelter 1639 src/antlr/ANTLRUtil.cpp
209     src/antlr/ASTFactory.cpp
210     src/antlr/ASTNULLType.cpp
211     src/antlr/ASTRefCount.cpp
212     src/antlr/BaseAST.cpp
213     src/antlr/BitSet.cpp
214     src/antlr/CommonAST.cpp
215     src/antlr/CommonASTWithHiddenTokens.cpp
216     src/antlr/CommonHiddenStreamToken.cpp
217     src/antlr/CommonToken.cpp
218     src/antlr/LLkParser.cpp
219     src/antlr/MismatchedCharException.cpp
220     src/antlr/MismatchedTokenException.cpp
221     src/antlr/NoViableAltException.cpp
222     src/antlr/NoViableAltForCharException.cpp
223     src/antlr/Parser.cpp
224     src/antlr/RecognitionException.cpp
225     src/antlr/String.cpp
226     src/antlr/Token.cpp
227     src/antlr/TokenRefCount.cpp
228     src/antlr/TokenStreamBasicFilter.cpp
229     src/antlr/TokenStreamHiddenTokenFilter.cpp
230     src/antlr/TokenStreamRewriteEngine.cpp
231     src/antlr/TokenStreamSelector.cpp
232     src/antlr/TreeParser.cpp
233     src/brains/BlockSnapshotManager.cpp
234     src/brains/DataStorage.cpp
235 gezelter 1725 src/brains/ForceField.cpp
236 gezelter 1639 src/brains/MoleculeCreator.cpp
237     src/brains/PairList.cpp
238     src/brains/Register.cpp
239     src/brains/SimSnapshotManager.cpp
240     src/brains/Snapshot.cpp
241     src/brains/Stats.cpp
242 gezelter 1748 src/constraints/Shake.cpp
243 gezelter 1639 src/constraints/Rattle.cpp
244     src/hydrodynamics/Ellipsoid.cpp
245     src/hydrodynamics/HydroProp.cpp
246     src/hydrodynamics/Sphere.cpp
247     src/integrators/DLM.cpp
248 gezelter 1766 src/flucq/FluctuatingChargeLangevin.cpp
249 gezelter 1743 src/flucq/FluctuatingChargeParameters.cpp
250 gezelter 1731 src/flucq/FluctuatingChargeNVT.cpp
251 gezelter 1743 src/flucq/FluctuatingChargePropagator.cpp
252 gezelter 1639 src/integrators/Integrator.cpp
253     src/integrators/IntegratorFactory.cpp
254     src/integrators/LangevinDynamics.cpp
255     src/integrators/LDForceManager.cpp
256     src/integrators/NgammaT.cpp
257 gezelter 2011 src/integrators/NPA.cpp
258 gezelter 1639 src/integrators/NPAT.cpp
259     src/integrators/NPrT.cpp
260     src/integrators/NPT.cpp
261     src/integrators/NPTf.cpp
262     src/integrators/NPTi.cpp
263     src/integrators/NPTsz.cpp
264     src/integrators/NPTxyz.cpp
265     src/integrators/NVE.cpp
266     src/integrators/NVT.cpp
267     src/integrators/VelocityVerletIntegrator.cpp
268     src/io/AtomTypesSectionParser.cpp
269     src/io/BaseAtomTypesSectionParser.cpp
270     src/io/BendTypesSectionParser.cpp
271     src/io/BondTypesSectionParser.cpp
272     src/io/ChargeAtomTypesSectionParser.cpp
273     src/io/DirectionalAtomTypesSectionParser.cpp
274     src/io/EAMAtomTypesSectionParser.cpp
275 gezelter 1710 src/io/FluctuatingChargeAtomTypesSectionParser.cpp
276 gezelter 1639 src/io/ForceFieldOptions.cpp
277     src/io/GayBerneAtomTypesSectionParser.cpp
278     src/io/Globals.cpp
279     src/io/InversionTypesSectionParser.cpp
280     src/io/LennardJonesAtomTypesSectionParser.cpp
281     src/io/MultipoleAtomTypesSectionParser.cpp
282     src/io/NonBondedInteractionsSectionParser.cpp
283     src/io/OptionSectionParser.cpp
284     src/io/ParamConstraint.cpp
285 gezelter 1710 src/io/PolarizableAtomTypesSectionParser.cpp
286 gezelter 1639 src/io/SCAtomTypesSectionParser.cpp
287     src/io/SectionParser.cpp
288     src/io/SectionParserManager.cpp
289     src/io/ShapeAtomTypesSectionParser.cpp
290     src/io/StickyAtomTypesSectionParser.cpp
291     src/io/StickyPowerAtomTypesSectionParser.cpp
292     src/io/TorsionTypesSectionParser.cpp
293     src/io/ZConsReader.cpp
294     src/lattice/CubicLattice.cpp
295     src/lattice/FCCLattice.cpp
296     src/lattice/Lattice.cpp
297     src/lattice/LatticeFactory.cpp
298     src/lattice/shapedLattice.cpp
299     src/math/ChebyshevT.cpp
300     src/math/ChebyshevU.cpp
301     src/math/CubicSpline.cpp
302     src/math/LegendrePolynomial.cpp
303     src/math/RealSphericalHarmonic.cpp
304     src/math/RMSD.cpp
305     src/math/SeqRandNumGen.cpp
306     src/math/SphericalHarmonic.cpp
307     src/math/Wigner3jm.cpp
308     src/mdParser/FilenameObserver.cpp
309 gezelter 1743 src/optimization/OptimizationFactory.cpp
310     src/optimization/Armijo.cpp
311     src/optimization/BFGS.cpp
312     src/optimization/ConjugateGradient.cpp
313     src/optimization/Constraint.cpp
314     src/optimization/EndCriteria.cpp
315     src/optimization/LineSearch.cpp
316     src/optimization/LineSearchBasedMethod.cpp
317     src/optimization/SteepestDescent.cpp
318     src/optimization/PotentialEnergyObjectiveFunction.cpp
319 gezelter 1746 src/optimization/MinimizerParameters.cpp
320 gezelter 1639 src/nonbonded/EAM.cpp
321     src/nonbonded/GB.cpp
322     src/nonbonded/InteractionManager.cpp
323     src/nonbonded/LJ.cpp
324     src/nonbonded/MAW.cpp
325     src/nonbonded/Morse.cpp
326     src/nonbonded/RepulsivePower.cpp
327     src/nonbonded/SC.cpp
328     src/nonbonded/Sticky.cpp
329     src/nonbonded/SwitchingFunction.cpp
330     src/primitives/Atom.cpp
331     src/primitives/Bend.cpp
332     src/primitives/DirectionalAtom.cpp
333     src/primitives/GhostBend.cpp
334     src/primitives/GhostTorsion.cpp
335     src/primitives/Inversion.cpp
336     src/primitives/Molecule.cpp
337     src/primitives/RigidBody.cpp
338     src/primitives/StuntDouble.cpp
339 gezelter 1954 src/primitives/ShortRangeInteraction.cpp
340 gezelter 1639 src/primitives/Torsion.cpp
341     src/primitives/UreyBradleyBend.cpp
342 gezelter 2020 src/perturbations/UniformField.cpp
343 gezelter 2026 src/perturbations/UniformGradient.cpp
344 gezelter 1639 src/restraints/MolecularRestraint.cpp
345     src/restraints/ObjectRestraint.cpp
346     src/selection/HullFinder.cpp
347     src/selection/IndexFinder.cpp
348     src/selection/NameFinder.cpp
349     src/selection/SelectionCompiler.cpp
350     src/selection/SelectionEvaluator.cpp
351     src/selection/SelectionManager.cpp
352     src/selection/SelectionToken.cpp
353     src/selection/TokenMap.cpp
354 gezelter 1954 src/selection/SelectionSet.cpp
355 gezelter 1639 src/types/AtomStamp.cpp
356     src/types/AtomType.cpp
357     src/types/BendStamp.cpp
358     src/types/BondStamp.cpp
359     src/types/CharmmTorsionType.cpp
360     src/types/Component.cpp
361 gezelter 1979 src/types/ConstraintStamp.cpp
362 gezelter 1639 src/types/CutoffGroupStamp.cpp
363 gezelter 1710 src/types/DirectionalAdapter.cpp
364     src/types/EAMAdapter.cpp
365     src/types/FixedChargeAdapter.cpp
366     src/types/FluctuatingChargeAdapter.cpp
367 gezelter 1639 src/types/FragmentStamp.cpp
368 gezelter 1710 src/types/GayBerneAdapter.cpp
369 gezelter 1639 src/types/ImproperCosineInversionType.cpp
370     src/types/InversionStamp.cpp
371 gezelter 1710 src/types/LennardJonesAdapter.cpp
372 gezelter 1639 src/types/MoleculeStamp.cpp
373 gezelter 1710 src/types/MultipoleAdapter.cpp
374 gezelter 1639 src/types/NonBondedInteractionType.cpp
375 gezelter 1710 src/types/PolarizableAdapter.cpp
376 gezelter 1639 src/types/RestraintStamp.cpp
377     src/types/RigidBodyStamp.cpp
378     src/types/ShapeAtomType.cpp
379 gezelter 1710 src/types/StickyAdapter.cpp
380     src/types/SuttonChenAdapter.cpp
381 gezelter 1639 src/types/TorsionStamp.cpp
382     src/types/ZconsStamp.cpp
383     src/utils/ElementsTable.cpp
384     src/utils/MoLocator.cpp
385     src/utils/PropertyMap.cpp
386     src/utils/StringTokenizer.cpp
387     src/utils/StringUtils.cpp
388     src/utils/Trim.cpp
389     src/utils/Utility.cpp
390     src/utils/wildcards.cpp
391     src/visitors/AtomNameVisitor.cpp
392     src/visitors/AtomVisitor.cpp
393     src/visitors/CompositeVisitor.cpp
394     src/visitors/LipidTransVisitor.cpp
395     src/visitors/OtherVisitor.cpp
396     src/visitors/ReplacementVisitor.cpp
397     src/visitors/RigidBodyVisitor.cpp
398     src/visitors/ZconsVisitor.cpp
399 gezelter 1731 src/rnemd/RNEMDParameters.cpp
400 gezelter 1879 src/clusters/Icosahedron.cpp
401     src/clusters/Decahedron.cpp
402 gezelter 1639 )
403 chuckv 1466
404 gezelter 1639 set( PARALLEL_SOURCE
405 gezelter 1969 src/antlr/CharBuffer.cpp
406     src/antlr/CharScanner.cpp
407     src/antlr/InputBuffer.cpp
408     src/antlr/TokenBuffer.cpp
409     src/mdParser/MDLexer.cpp
410     src/mdParser/MDParser.cpp
411     src/mdParser/MDTreeParser.cpp
412 gezelter 1639 src/brains/ForceManager.cpp
413     src/brains/SimCreator.cpp
414     src/brains/SimInfo.cpp
415     src/brains/Thermo.cpp
416     src/constraints/ZconstraintForceManager.cpp
417 gezelter 1743 src/flucq/FluctuatingChargeConstraints.cpp
418     src/flucq/FluctuatingChargeObjectiveFunction.cpp
419 gezelter 1972 src/flucq/FluctuatingChargeForces.cpp
420 gezelter 1730 src/integrators/LangevinHullForceManager.cpp
421 gezelter 1731 src/rnemd/RNEMD.cpp
422 gezelter 1639 src/integrators/Velocitizer.cpp
423 gezelter 1981 src/io/ConstraintWriter.cpp
424 gezelter 1639 src/io/DumpReader.cpp
425     src/io/DumpWriter.cpp
426     src/io/RestReader.cpp
427     src/io/RestWriter.cpp
428     src/io/StatWriter.cpp
429     src/io/ZConsWriter.cpp
430     src/io/ifstrstream.cpp
431     src/math/ParallelRandNumGen.cpp
432 gezelter 1926 src/nonbonded/Electrostatic.cpp
433 gezelter 1639 src/parallel/ForceDecomposition.cpp
434     src/parallel/ForceMatrixDecomposition.cpp
435     src/restraints/RestraintForceManager.cpp
436     src/restraints/ThermoIntegrationForceManager.cpp
437 gezelter 1802 src/selection/DistanceFinder.cpp
438 gezelter 1639 src/utils/ProgressBar.cpp
439 gezelter 1668 src/utils/simError.cpp
440 gezelter 1802 src/utils/OpenMDBitSet.cpp
441 gezelter 1743 src/optimization/Problem.cpp
442 gezelter 1639 )
443    
444 gezelter 1767 IF(ZLIB_FOUND)
445     set(ZLIB_SOURCE
446     src/io/gzstream.cpp
447     )
448     ENDIF(ZLIB_FOUND)
449    
450 gezelter 1639 IF(QHULL_FOUND)
451     set(QHULL_SOURCE
452     src/integrators/LangevinHullDynamics.cpp
453     src/math/Triangle.cpp
454     )
455     set(QHULL_PARALLEL_SOURCE
456     src/integrators/LangevinHullForceManager.cpp
457     src/math/ConvexHull.cpp
458     src/math/AlphaHull.cpp
459     )
460     ENDIF(QHULL_FOUND)
461    
462 gezelter 1767 IF(WIN32)
463     set(GETOPT_SOURCE
464 gezelter 1795 src/utils/wingetopt.cpp
465 gezelter 1767 )
466     ENDIF(WIN32)
467    
468     add_library(openmd_core STATIC ${SOURCE} ${QHULL_SOURCE} ${ZLIB_SOURCE} )
469 gezelter 1639 add_library(openmd_single STATIC ${PARALLEL_SOURCE} ${QHULL_PARALLEL_SOURCE} )
470    
471     IF(MPI_FOUND)
472     add_library(openmd_parallel STATIC ${PARALLEL_SOURCE} ${QHULL_PARALLEL_SOURCE} )
473     set_target_properties(openmd_parallel PROPERTIES
474     COMPILE_DEFINITIONS IS_MPI
475     )
476     ENDIF(MPI_FOUND)
477    
478     add_executable(openmd src/applications/openmd/openmd.cpp)
479     target_link_libraries(openmd openmd_single openmd_core openmd_single openmd_core)
480    
481     if (MPI_FOUND)
482     add_executable(openmd_MPI src/applications/openmd/openmd.cpp)
483     set_target_properties(openmd_MPI PROPERTIES
484     COMPILE_DEFINITIONS IS_MPI
485     )
486     target_link_libraries(openmd_MPI openmd_parallel openmd_core openmd_parallel openmd_core)
487 gezelter 1647 INSTALL(TARGETS
488     openmd_parallel openmd_MPI
489     RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
490     LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
491     ARCHIVE DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
492     )
493 gezelter 1639 ENDIF (MPI_FOUND)
494    
495     set (DUMP2XYZSOURCE
496     src/applications/dump2Xyz/Dump2XYZ.cpp
497 gezelter 1655 src/applications/dump2Xyz/Dump2XYZCmd.cpp
498 gezelter 1639 )
499    
500     set (DYNAMICPROPSSOURCE
501     src/applications/dynamicProps/ActionCorrFunc.cpp
502     src/applications/dynamicProps/CrossTimeCorrFunc.cpp
503     src/applications/dynamicProps/DipoleCorrFunc.cpp
504     src/applications/dynamicProps/DirectionalRCorrFunc.cpp
505     src/applications/dynamicProps/DynamicProps.cpp
506     src/applications/dynamicProps/EnergyCorrFunc.cpp
507     src/applications/dynamicProps/FrameTimeCorrFunc.cpp
508 gezelter 2003 src/applications/dynamicProps/FreqFlucCorrFunc.cpp
509 gezelter 1639 src/applications/dynamicProps/LegendreCorrFunc.cpp
510 gezelter 1915 src/applications/dynamicProps/LegendreCorrFuncZ.cpp
511 gezelter 1934 src/applications/dynamicProps/cOHz.cpp
512 gezelter 1639 src/applications/dynamicProps/MomentumCorrFunc.cpp
513     src/applications/dynamicProps/ParticleTimeCorrFunc.cpp
514 gezelter 1954 src/applications/dynamicProps/InteractionTimeCorrFunc.cpp
515 gezelter 1639 src/applications/dynamicProps/RadialRCorrFunc.cpp
516     src/applications/dynamicProps/RCorrFunc.cpp
517 gezelter 1811 src/applications/dynamicProps/SelectionCorrFunc.cpp
518 gezelter 1639 src/applications/dynamicProps/StressCorrFunc.cpp
519     src/applications/dynamicProps/SystemDipoleCorrFunc.cpp
520     src/applications/dynamicProps/ThetaCorrFunc.cpp
521     src/applications/dynamicProps/TimeCorrFunc.cpp
522     src/applications/dynamicProps/VCorrFunc.cpp
523 gezelter 1954 src/applications/dynamicProps/BondCorrFunc.cpp
524 gezelter 1655 src/applications/dynamicProps/DynamicPropsCmd.cpp
525 gezelter 1639 )
526    
527     set (HYDROSOURCE
528     src/applications/hydrodynamics/AnalyticalModel.cpp
529     src/applications/hydrodynamics/ApproximationModel.cpp
530     src/applications/hydrodynamics/BeadModel.cpp
531     src/applications/hydrodynamics/CompositeShape.cpp
532     src/applications/hydrodynamics/Hydro.cpp
533     src/applications/hydrodynamics/HydrodynamicsModel.cpp
534     src/applications/hydrodynamics/HydrodynamicsModelFactory.cpp
535     src/applications/hydrodynamics/RoughShell.cpp
536     src/applications/hydrodynamics/ShapeBuilder.cpp
537 gezelter 1655 src/applications/hydrodynamics/HydroCmd.cpp
538 gezelter 1639 )
539    
540 gezelter 2024 set (SEQUENTIALPROPSSOURCE
541     src/applications/sequentialProps/DensityAnalyzer.cpp
542     src/applications/sequentialProps/SequentialAnalyzer.cpp
543     src/applications/sequentialProps/SequentialProps.cpp
544     src/applications/sequentialProps/SequentialPropsCmd.cpp
545     )
546    
547 gezelter 1639 set (STATICPROPSSOURCE
548     src/applications/staticProps/AngleR.cpp
549     src/applications/staticProps/BondAngleDistribution.cpp
550     src/applications/staticProps/BondOrderParameter.cpp
551     src/applications/staticProps/BOPofR.cpp
552     src/applications/staticProps/DensityPlot.cpp
553     src/applications/staticProps/GofAngle2.cpp
554     src/applications/staticProps/GofR.cpp
555     src/applications/staticProps/GofRAngle.cpp
556     src/applications/staticProps/GofRZ.cpp
557     src/applications/staticProps/GofXyz.cpp
558     src/applications/staticProps/GofZ.cpp
559     src/applications/staticProps/Hxy.cpp
560 gezelter 1998 src/applications/staticProps/MultipoleSum.cpp
561 gezelter 1639 src/applications/staticProps/NanoLength.cpp
562     src/applications/staticProps/NanoVolume.cpp
563 gezelter 1994 src/applications/staticProps/NitrileFrequencyMap.cpp
564 gezelter 1639 src/applications/staticProps/ObjectCount.cpp
565     src/applications/staticProps/P2OrderParameter.cpp
566     src/applications/staticProps/pAngle.cpp
567     src/applications/staticProps/RadialDistrFunc.cpp
568     src/applications/staticProps/RhoR.cpp
569     src/applications/staticProps/RhoZ.cpp
570     src/applications/staticProps/RippleOP.cpp
571 gezelter 1879 src/applications/staticProps/RNEMDStats.cpp
572 gezelter 1639 src/applications/staticProps/SCDOrderParameter.cpp
573 gezelter 1879 src/applications/staticProps/SpatialStatistics.cpp
574 gezelter 1639 src/applications/staticProps/StaticProps.cpp
575     src/applications/staticProps/TetrahedralityParam.cpp
576 gezelter 1763 src/applications/staticProps/TetrahedralityParamZ.cpp
577 gezelter 2015 src/applications/staticProps/TetrahedralityParamXYZ.cpp
578 gezelter 1639 src/applications/staticProps/TwoDGofR.cpp
579 gezelter 1655 src/applications/staticProps/StaticPropsCmd.cpp
580 gezelter 1639 )
581    
582     set (NANOPARTICLEBUILDERSOURCE
583     src/applications/nanoparticleBuilder/nanoparticleBuilder.cpp
584     src/applications/nanoparticleBuilder/shapedLatticeSpherical.cpp
585 gezelter 1655 src/applications/nanoparticleBuilder/nanoparticleBuilderCmd.cpp
586 gezelter 1639 )
587    
588 kstocke1 1701 set (NANORODBUILDERSOURCE
589     src/applications/nanoparticleBuilder/nanorodBuilder.cpp
590     src/applications/nanoparticleBuilder/shapedLatticeRod.cpp
591 gezelter 1879 src/applications/nanoparticleBuilder/shapedLatticeEllipsoid.cpp
592 kstocke1 1701 src/applications/nanoparticleBuilder/nanorodBuilderCmd.cpp
593     )
594    
595     set (NANOROD_PENTBUILDERSOURCE
596     src/applications/nanoparticleBuilder/nanorod_pentBuilder.cpp
597     src/applications/nanoparticleBuilder/nanorod_pentBuilderCmd.cpp
598     src/applications/nanoparticleBuilder/shapedLatticePentRod.cpp
599     )
600    
601 gezelter 1879 set (ICOSAHEDRALBUILDERSOURCE
602     src/applications/nanoparticleBuilder/icosahedralBuilder.cpp
603     src/applications/nanoparticleBuilder/icosahedralBuilderCmd.cpp
604     )
605    
606 gezelter 1639 set (RANDOMBUILDERSOURCE
607     src/applications/randomBuilder/randomBuilder.cpp
608 gezelter 1655 src/applications/randomBuilder/randomBuilderCmd.cpp
609 gezelter 1639 )
610    
611     set(SIMPLEBUILDERSOURCE
612     src/applications/simpleBuilder/simpleBuilder.cpp
613 gezelter 1655 src/applications/simpleBuilder/simpleBuilderCmd.cpp
614 gezelter 1639 )
615    
616     set(THERMALIZERSOURCE
617     src/applications/thermalizer/thermalizer.cpp
618 gezelter 1655 src/applications/thermalizer/thermalizerCmd.cpp
619 gezelter 1639 )
620    
621 gezelter 1879 set(RECENTERSOURCE
622     src/applications/recenter/recenter.cpp
623     src/applications/recenter/recenterCmd.cpp
624     )
625    
626 gezelter 1767 add_executable(Dump2XYZ ${DUMP2XYZSOURCE} ${GETOPT_SOURCE})
627 gezelter 1639 target_link_libraries(Dump2XYZ openmd_single openmd_core openmd_single openmd_core)
628 gezelter 1767 add_executable(DynamicProps ${DYNAMICPROPSSOURCE} ${GETOPT_SOURCE})
629 gezelter 1639 target_link_libraries(DynamicProps openmd_single openmd_core openmd_single openmd_core)
630 gezelter 1767 add_executable(Hydro ${HYDROSOURCE} ${GETOPT_SOURCE})
631 gezelter 1639 target_link_libraries(Hydro openmd_single openmd_core openmd_single openmd_core)
632 gezelter 1767 add_executable(StaticProps ${STATICPROPSSOURCE} ${GETOPT_SOURCE})
633 gezelter 1639 target_link_libraries(StaticProps openmd_single openmd_core openmd_single openmd_core)
634 gezelter 2024 add_executable(SequentialProps ${SEQUENTIALPROPSSOURCE} ${GETOPT_SOURCE})
635     target_link_libraries(SequentialProps openmd_single openmd_core openmd_single openmd_core)
636 gezelter 1767 add_executable(nanoparticleBuilder ${NANOPARTICLEBUILDERSOURCE} ${GETOPT_SOURCE})
637 gezelter 1807 target_link_libraries(nanoparticleBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
638 gezelter 1767 add_executable(nanorodBuilder ${NANORODBUILDERSOURCE} ${GETOPT_SOURCE})
639 gezelter 1807 target_link_libraries(nanorodBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
640 gezelter 1767 add_executable(nanorod_pentBuilder ${NANOROD_PENTBUILDERSOURCE} ${GETOPT_SOURCE})
641 gezelter 1807 target_link_libraries(nanorod_pentBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
642 gezelter 1879 add_executable(icosahedralBuilder ${ICOSAHEDRALBUILDERSOURCE} ${GETOPT_SOURCE})
643     target_link_libraries(icosahedralBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
644 gezelter 1767 add_executable(randomBuilder ${RANDOMBUILDERSOURCE} ${GETOPT_SOURCE})
645 gezelter 1807 target_link_libraries(randomBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
646 gezelter 1767 add_executable(simpleBuilder ${SIMPLEBUILDERSOURCE} ${GETOPT_SOURCE})
647 gezelter 1807 target_link_libraries(simpleBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
648 gezelter 1767 add_executable(thermalizer ${THERMALIZERSOURCE} ${GETOPT_SOURCE})
649 gezelter 1807 target_link_libraries(thermalizer openmd_single openmd_core openmd_single openmd_core openmd_single)
650 gezelter 1879 add_executable(recenter ${RECENTERSOURCE} ${GETOPT_SOURCE})
651     target_link_libraries(recenter openmd_single openmd_core openmd_single openmd_core openmd_single)
652 gezelter 1639
653     if (OPENBABEL2_FOUND)
654     set (ATOM2MDSOURCE
655     src/applications/atom2md/atom2md.cpp
656     src/applications/atom2md/openmdformat.cpp
657     )
658 gezelter 1767 add_executable(atom2md ${ATOM2MDSOURCE} ${GETOPT_SOURCE})
659 gezelter 1699 target_link_libraries(atom2md openmd_single openmd_core openmd_single openmd_core ${OPENBABEL2_LIBRARIES})
660 gezelter 1647 INSTALL(TARGETS atom2md RUNTIME DESTINATION bin
661     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
662 gezelter 1639 ENDIF (OPENBABEL2_FOUND)
663    
664    
665     set(PY_FILES
666     src/applications/hydrodynamics/diffExplainer
667     src/applications/utilities/affineScale
668     src/applications/utilities/dumpConverter
669     src/applications/utilities/md-solvator
670     src/applications/utilities/md2md
671     src/applications/utilities/mdSplit
672 gezelter 2012 src/applications/utilities/mdShrink
673 gezelter 1639 src/applications/utilities/principalAxisCalculator
674 gezelter 1795 src/applications/utilities/stat2thcond
675 gezelter 1639 src/applications/utilities/stat2visco
676 gezelter 2006 src/applications/utilities/stat2dielectric
677 gezelter 1639 src/applications/utilities/waterRotator
678 gezelter 1668 src/applications/utilities/waterReplacer
679 gezelter 1639 )
680    
681     IF(PYTHON_EXECUTABLE)
682 gezelter 1795 IF(WIN32)
683     SET(PYEXT ".py")
684     ELSE(WIN32)
685     SET(PYEXT "")
686     ENDIF(WIN32)
687    
688     foreach(PY_FILE ${PY_FILES})
689     GET_FILENAME_COMPONENT(filename "${PY_FILE}" NAME)
690     CONFIGURE_FILE(${PY_FILE}
691     "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PYEXT}" @ONLY)
692     INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PYEXT}"
693     DESTINATION bin
694     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
695     endforeach(PY_FILE)
696 gezelter 1639 ENDIF(PYTHON_EXECUTABLE)
697    
698     set(PERL_FILES
699     src/applications/utilities/solvator
700     src/applications/utilities/waterBoxer
701     )
702    
703     IF(PERL_FOUND)
704 gezelter 1795 IF(WIN32)
705     SET(PLEXT ".PL")
706     ELSE(WIN32)
707     SET(PLEXT "")
708     ENDIF(WIN32)
709 gezelter 1647
710 gezelter 1795 foreach(PERL_FILE ${PERL_FILES})
711     GET_FILENAME_COMPONENT(filename "${PERL_FILE}" NAME)
712     configure_file(${PERL_FILE} "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PLEXT}" @ONLY)
713     INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PLEXT}"
714     DESTINATION bin
715     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
716    
717     endforeach(PERL_FILE)
718 gezelter 1639 ENDIF(PERL_FOUND)
719 gezelter 1647
720 gezelter 1806
721 gezelter 1652 INSTALL(FILES AUTHORS LICENSE README INSTALL DESTINATION .
722 gezelter 1647 PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
723     INSTALL(TARGETS
724     openmd_core
725     openmd_single
726     openmd
727     Dump2XYZ
728     simpleBuilder
729     StaticProps
730     DynamicProps
731 gezelter 2024 SequentialProps
732 gezelter 1647 randomBuilder
733     nanoparticleBuilder
734 gezelter 1806 nanorodBuilder
735     nanorod_pentBuilder
736 gezelter 1950 icosahedralBuilder
737 gezelter 1647 thermalizer
738 gezelter 1879 recenter
739 gezelter 1647 Hydro
740     RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
741     LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
742     ARCHIVE DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
743     )
744    
745     install(DIRECTORY forceFields/
746     DESTINATION forceFields
747 gezelter 1650 DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
748     PATTERN ".svn" EXCLUDE
749 gezelter 1647 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
750     install(DIRECTORY samples/
751     DESTINATION samples
752 gezelter 1650 DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
753     PATTERN ".svn" EXCLUDE
754 gezelter 1651 PATTERN "*.dump" EXCLUDE
755     PATTERN "*.stat" EXCLUDE
756 gezelter 1795 PATTERN "*.eor" EXCLUDE
757     PATTERN "*.rnemd" EXCLUDE
758 gezelter 1806 PATTERN "*.fz" EXCLUDE
759 gezelter 1647 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
760 gezelter 1806
761     configure_file( samples/builders/runMe.in
762     "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/runMe" @ONLY)
763     INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/runMe"
764     DESTINATION samples/builders
765     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
766    
767    
768 gezelter 1651 INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/doc/OpenMDmanual.pdf"
769     DESTINATION doc
770     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
771 gezelter 1694
772     message( STATUS)
773     message( STATUS "========== OpenMD Build Information ==========")
774     message( STATUS "Current revision ........... = ${SVN_REV}")
775     message( STATUS "CMAKE_SYSTEM ............... = ${CMAKE_SYSTEM}")
776     message( STATUS "==============================================")
777     message( STATUS "CMAKE_BUILD_TYPE ........... = ${CMAKE_BUILD_TYPE}")
778     message( STATUS "CMAKE_INSTALL_PREFIX ....... = ${CMAKE_INSTALL_PREFIX}")
779 gezelter 1695 message( STATUS "Build as SINGLE_PRECISION .. = ${SINGLE_PRECISION}")
780 gezelter 1694 message( STATUS "CMAKE_CXX_COMPILER ......... = ${CMAKE_CXX_COMPILER}")
781     message( STATUS "MPI_CXX_COMPILER ........... = ${MPI_CXX_COMPILER}")
782     message( STATUS "MPI_CXX_INCLUDE_PATH ....... = ${MPI_CXX_INCLUDE_PATH}")
783     message( STATUS "MPI_CXX_LIBRARIES .......... = ${MPI_CXX_LIBRARIES}")
784 gezelter 1699 message( STATUS "OPENBABEL2_ROOT ............ = ${OPENBABEL2_ROOT}")
785 gezelter 1694 message( STATUS "OPENBABEL2_INCLUDE_DIR ..... = ${OPENBABEL2_INCLUDE_DIR}")
786     message( STATUS "OPENBABEL2_LIBRARIES ....... = ${OPENBABEL2_LIBRARIES}")
787 gezelter 1695 message( STATUS "QHULL_ROOT ................. = ${QHULL_ROOT}")
788 gezelter 1694 message( STATUS "QHULL_INCLUDE_DIR .......... = ${QHULL_INCLUDE_DIR}")
789     message( STATUS "QHULL_LIBRARIES ............ = ${QHULL_LIBRARIES}")
790 gezelter 1695 message( STATUS "ZLIB_ROOT .................. = ${ZLIB_ROOT}")
791 gezelter 1694 message( STATUS "ZLIB_INCLUDE_DIR ........... = ${ZLIB_INCLUDE_DIR}")
792     message( STATUS "ZLIB_LIBRARIES ............. = ${ZLIB_LIBRARIES}")
793 gezelter 1699 message( STATUS "FFTW3_ROOT ................. = ${FFTW3_ROOT}")
794 gezelter 1694 message( STATUS "FFTW3_INCLUDE_DIR .......... = ${FFTW3_INCLUDE_DIR}")
795     message( STATUS "FFTW3_LIBRARIES ............ = ${FFTW3_LIBRARIES}")
796 gezelter 1695 message( STATUS "PERL_EXECUTABLE ............ = ${PERL_EXECUTABLE}")
797     message( STATUS "PYTHON_EXECUTABLE .......... = ${PYTHON_EXECUTABLE}")
798 gezelter 1694 message( STATUS "DOXYGEN_EXECUTABLE ......... = ${DOXYGEN_EXECUTABLE}")
799 gezelter 1695 message( STATUS )
800 gezelter 1696 message( STATUS "To override these options, add -D{OPTION_NAME}=... to the cmake command" )
801     message( STATUS "Particularly useful defines are for:")
802     message( STATUS )
803 gezelter 1699 message( STATUS " -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} (where OpenMD will be installed)")
804     message( STATUS " -DOPENBABEL2_ROOT=/path/to/openbabel")
805     message( STATUS " -DQHULL_ROOT=/path/to/qhull")
806     message( STATUS " -DFFTW3_ROOT=/path/to/fftw3")
807 gezelter 1696 message( STATUS )
808 gezelter 1790 IF(WIN32)
809     message( STATUS "To build and install OpenMD, enter: ")
810     message( STATUS " msbuild /m ALL_BUILD.vcxproj /p:Configuration=${CMAKE_BUILD_TYPE}")
811     message( STATUS "followed by:")
812     message( STATUS " msbuild /m INSTALL.vcxproj /p:Configuration=${CMAKE_BUILD_TYPE}")
813     ELSE(WIN32)
814     message( STATUS "To build and install OpenMD, enter \"make\" and \"make install\"")
815     ENDIF(WIN32)
816 gezelter 1696 message( STATUS )
817 gezelter 1795
818     # build a CPack driven installer package
819     IF(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
820     SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
821     ENDIF()
822     include (InstallRequiredSystemLibraries)
823     set (CPACK_RESOURCE_FILE_LICENSE
824     "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
825     set (CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
826     set (CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
827     include (CPack)