ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/CMakeLists.txt
Revision: 1725
Committed: Sat May 26 18:13:43 2012 UTC (12 years, 11 months ago) by gezelter
Content type: text/plain
File size: 23909 byte(s)
Log Message:
Individual ForceField classes have been removed (they were essentially
all duplicates anyway).  

ForceField has moved to brains, and since only one force field is in
play at any time, the ForceFieldFactory and Register methods have been
removed.  


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