ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/CMakeLists.txt
Revision: 1994
Committed: Wed Apr 30 18:50:45 2014 UTC (11 years, 1 month ago) by gezelter
Content type: text/plain
File size: 28357 byte(s)
Log Message:
Added NitrileFrequencyMap module to staticProps

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 1879 SET(QHULL_USE_STATIC 1)
115 gezelter 1694 find_package(Qhull)
116 chuckv 1496 IF(QHULL_FOUND)
117     SET(HAVE_QHULL 1)
118 chuckv 1500 include_directories(${QHULL_INCLUDE_DIR})
119 chuckv 1496 LINK_LIBRARIES(${QHULL_LIBRARIES})
120 gezelter 1695 ELSE(QHULL_FOUND)
121 gezelter 1705 MESSAGE(STATUS "No Qhull found - will be missing some features")
122 chuckv 1496 ENDIF(QHULL_FOUND)
123 chuckv 1466
124 chuckv 1496 # zlib stuff
125     find_package(ZLIB)
126     if(ZLIB_FOUND)
127     SET(HAVE_LIBZ 1)
128     add_definitions(-DHAVE_LIBZ)
129     include_directories(${ZLIB_INCLUDE_DIR})
130     LINK_LIBRARIES(${ZLIB_LIBRARIES})
131 gezelter 1695 ELSE(ZLIB_FOUND)
132 gezelter 1705 MESSAGE(STATUS "No zlib found - will be missing compressed dump files")
133 chuckv 1496 endif(ZLIB_FOUND)
134    
135 gezelter 1695 #FFTW3
136 gezelter 1694 IF(SINGLE_PRECISION)
137     find_package(FFTW3 COMPONENTS single)
138     else()
139     find_package(FFTW3 COMPONENTS double)
140     endif(SINGLE_PRECISION)
141     if (FFTW3_FOUND)
142     include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${FFTW3_INCLUDE_DIR})
143 chuckv 1496 SET(HAVE_LIBFFTW 1)
144 gezelter 1668 SET(HAVE_FFTW3_H 1)
145 gezelter 1694 INCLUDE_DIRECTORIES(${FFTW3_INCLUDE_DIR})
146     LINK_LIBRARIES(${FFTW3_LIBRARIES})
147 gezelter 1695 ELSE(FFTW3_FOUND)
148 gezelter 1705 MESSAGE(STATUS "No fftw3 found - will be missing some analysis modules")
149 gezelter 1694 endif (FFTW3_FOUND)
150 chuckv 1496
151 gezelter 1694
152 gezelter 1651 # add a target to generate API documentation with Doxygen
153     find_package(Doxygen)
154     if(DOXYGEN_FOUND)
155     configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile" @ONLY)
156     add_custom_target(doc
157     ${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile"
158     WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc"
159     COMMENT "Generating API documentation with Doxygen" VERBATIM
160     )
161     endif(DOXYGEN_FOUND)
162 chuckv 1496
163 gezelter 1639 FIND_PACKAGE(Perl)
164     IF(PERL_FOUND)
165     SET(PERL ${PERL_EXECUTABLE})
166     ELSE(PERL_FOUND)
167 gezelter 1695 MESSAGE(STATUS "Failed to find perl - some scripts will not be made")
168 gezelter 1639 ENDIF(PERL_FOUND)
169    
170 gezelter 1695 SET(PERL_INSTALLDIRS "site" CACHE STRING "Perl installation
171     locations")
172    
173 gezelter 1639 FIND_PACKAGE(PythonInterp)
174     IF(PYTHON_EXECUTABLE)
175     SET(PYTHON ${PYTHON_EXECUTABLE})
176     ELSE(PYTHON_EXECUTABLE)
177 gezelter 1695 MESSAGE(STATUS "Failed to find python - some scripts will not be made")
178 gezelter 1639 ENDIF(PYTHON_EXECUTABLE)
179    
180 chuckv 1496 configure_file (
181     "${PROJECT_SOURCE_DIR}/src/config.h.cmake"
182 gezelter 1655 "${PROJECT_BINARY_DIR}/config.h"
183     )
184 gezelter 1976 configure_file(
185     "${PROJECT_SOURCE_DIR}/src/utils/Revision.cpp.in"
186     "${PROJECT_BINARY_DIR}/Revision.cpp"
187     )
188    
189 gezelter 1655 include_directories("${PROJECT_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/src")
190 chuckv 1496
191 chuckv 1466 #Add executables for build
192 gezelter 1639 set (PROGRAMS
193     openmd
194     openmd_MPI
195     Dump2XYZ
196     simpleBuilder
197     StaticProps
198     DynamicProps
199     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     src/integrators/NPAT.cpp
258     src/integrators/NPrT.cpp
259     src/integrators/NPT.cpp
260     src/integrators/NPTf.cpp
261     src/integrators/NPTi.cpp
262     src/integrators/NPTsz.cpp
263     src/integrators/NPTxyz.cpp
264     src/integrators/NVE.cpp
265     src/integrators/NVT.cpp
266     src/integrators/VelocityVerletIntegrator.cpp
267     src/io/AtomTypesSectionParser.cpp
268     src/io/BaseAtomTypesSectionParser.cpp
269     src/io/BendTypesSectionParser.cpp
270     src/io/BondTypesSectionParser.cpp
271     src/io/ChargeAtomTypesSectionParser.cpp
272     src/io/DirectionalAtomTypesSectionParser.cpp
273     src/io/EAMAtomTypesSectionParser.cpp
274 gezelter 1710 src/io/FluctuatingChargeAtomTypesSectionParser.cpp
275 gezelter 1639 src/io/ForceFieldOptions.cpp
276     src/io/GayBerneAtomTypesSectionParser.cpp
277     src/io/Globals.cpp
278     src/io/InversionTypesSectionParser.cpp
279     src/io/LennardJonesAtomTypesSectionParser.cpp
280     src/io/MultipoleAtomTypesSectionParser.cpp
281     src/io/NonBondedInteractionsSectionParser.cpp
282     src/io/OptionSectionParser.cpp
283     src/io/ParamConstraint.cpp
284 gezelter 1710 src/io/PolarizableAtomTypesSectionParser.cpp
285 gezelter 1639 src/io/SCAtomTypesSectionParser.cpp
286     src/io/SectionParser.cpp
287     src/io/SectionParserManager.cpp
288     src/io/ShapeAtomTypesSectionParser.cpp
289     src/io/StickyAtomTypesSectionParser.cpp
290     src/io/StickyPowerAtomTypesSectionParser.cpp
291     src/io/TorsionTypesSectionParser.cpp
292     src/io/ZConsReader.cpp
293     src/lattice/CubicLattice.cpp
294     src/lattice/FCCLattice.cpp
295     src/lattice/Lattice.cpp
296     src/lattice/LatticeFactory.cpp
297     src/lattice/shapedLattice.cpp
298     src/math/ChebyshevT.cpp
299     src/math/ChebyshevU.cpp
300     src/math/CubicSpline.cpp
301     src/math/LegendrePolynomial.cpp
302     src/math/RealSphericalHarmonic.cpp
303     src/math/RMSD.cpp
304     src/math/SeqRandNumGen.cpp
305     src/math/SphericalHarmonic.cpp
306     src/math/Wigner3jm.cpp
307     src/mdParser/FilenameObserver.cpp
308 gezelter 1743 src/optimization/OptimizationFactory.cpp
309     src/optimization/Armijo.cpp
310     src/optimization/BFGS.cpp
311     src/optimization/ConjugateGradient.cpp
312     src/optimization/Constraint.cpp
313     src/optimization/EndCriteria.cpp
314     src/optimization/LineSearch.cpp
315     src/optimization/LineSearchBasedMethod.cpp
316     src/optimization/SteepestDescent.cpp
317     src/optimization/PotentialEnergyObjectiveFunction.cpp
318 gezelter 1746 src/optimization/MinimizerParameters.cpp
319 gezelter 1639 src/nonbonded/EAM.cpp
320     src/nonbonded/GB.cpp
321     src/nonbonded/InteractionManager.cpp
322     src/nonbonded/LJ.cpp
323     src/nonbonded/MAW.cpp
324     src/nonbonded/Morse.cpp
325     src/nonbonded/RepulsivePower.cpp
326     src/nonbonded/SC.cpp
327     src/nonbonded/Sticky.cpp
328     src/nonbonded/SwitchingFunction.cpp
329     src/primitives/Atom.cpp
330     src/primitives/Bend.cpp
331     src/primitives/DirectionalAtom.cpp
332     src/primitives/GhostBend.cpp
333     src/primitives/GhostTorsion.cpp
334     src/primitives/Inversion.cpp
335     src/primitives/Molecule.cpp
336     src/primitives/RigidBody.cpp
337     src/primitives/StuntDouble.cpp
338 gezelter 1954 src/primitives/ShortRangeInteraction.cpp
339 gezelter 1639 src/primitives/Torsion.cpp
340     src/primitives/UreyBradleyBend.cpp
341 jmarr 1780 src/perturbations/ElectricField.cpp
342 gezelter 1639 src/restraints/MolecularRestraint.cpp
343     src/restraints/ObjectRestraint.cpp
344     src/selection/HullFinder.cpp
345     src/selection/IndexFinder.cpp
346     src/selection/NameFinder.cpp
347     src/selection/SelectionCompiler.cpp
348     src/selection/SelectionEvaluator.cpp
349     src/selection/SelectionManager.cpp
350     src/selection/SelectionToken.cpp
351     src/selection/TokenMap.cpp
352 gezelter 1954 src/selection/SelectionSet.cpp
353 gezelter 1639 src/types/AtomStamp.cpp
354     src/types/AtomType.cpp
355     src/types/BendStamp.cpp
356     src/types/BondStamp.cpp
357     src/types/CharmmTorsionType.cpp
358     src/types/Component.cpp
359 gezelter 1979 src/types/ConstraintStamp.cpp
360 gezelter 1639 src/types/CutoffGroupStamp.cpp
361 gezelter 1710 src/types/DirectionalAdapter.cpp
362     src/types/EAMAdapter.cpp
363     src/types/FixedChargeAdapter.cpp
364     src/types/FluctuatingChargeAdapter.cpp
365 gezelter 1639 src/types/FragmentStamp.cpp
366 gezelter 1710 src/types/GayBerneAdapter.cpp
367 gezelter 1639 src/types/ImproperCosineInversionType.cpp
368     src/types/InversionStamp.cpp
369 gezelter 1710 src/types/LennardJonesAdapter.cpp
370 gezelter 1639 src/types/MoleculeStamp.cpp
371 gezelter 1710 src/types/MultipoleAdapter.cpp
372 gezelter 1639 src/types/NonBondedInteractionType.cpp
373 gezelter 1710 src/types/PolarizableAdapter.cpp
374 gezelter 1639 src/types/RestraintStamp.cpp
375     src/types/RigidBodyStamp.cpp
376     src/types/ShapeAtomType.cpp
377 gezelter 1710 src/types/StickyAdapter.cpp
378     src/types/SuttonChenAdapter.cpp
379 gezelter 1639 src/types/TorsionStamp.cpp
380     src/types/ZconsStamp.cpp
381     src/utils/ElementsTable.cpp
382     src/utils/MoLocator.cpp
383     src/utils/PropertyMap.cpp
384     src/utils/StringTokenizer.cpp
385     src/utils/StringUtils.cpp
386     src/utils/Trim.cpp
387     src/utils/Utility.cpp
388     src/utils/wildcards.cpp
389     src/visitors/AtomNameVisitor.cpp
390     src/visitors/AtomVisitor.cpp
391     src/visitors/CompositeVisitor.cpp
392     src/visitors/LipidTransVisitor.cpp
393     src/visitors/OtherVisitor.cpp
394     src/visitors/ReplacementVisitor.cpp
395     src/visitors/RigidBodyVisitor.cpp
396     src/visitors/ZconsVisitor.cpp
397 gezelter 1731 src/rnemd/RNEMDParameters.cpp
398 gezelter 1879 src/clusters/Icosahedron.cpp
399     src/clusters/Decahedron.cpp
400 gezelter 1639 )
401 chuckv 1466
402 gezelter 1639 set( PARALLEL_SOURCE
403 gezelter 1969 src/antlr/CharBuffer.cpp
404     src/antlr/CharScanner.cpp
405     src/antlr/InputBuffer.cpp
406     src/antlr/TokenBuffer.cpp
407     src/mdParser/MDLexer.cpp
408     src/mdParser/MDParser.cpp
409     src/mdParser/MDTreeParser.cpp
410 gezelter 1639 src/brains/ForceManager.cpp
411     src/brains/SimCreator.cpp
412     src/brains/SimInfo.cpp
413     src/brains/Thermo.cpp
414     src/constraints/ZconstraintForceManager.cpp
415 gezelter 1743 src/flucq/FluctuatingChargeConstraints.cpp
416     src/flucq/FluctuatingChargeObjectiveFunction.cpp
417 gezelter 1972 src/flucq/FluctuatingChargeForces.cpp
418 gezelter 1730 src/integrators/LangevinHullForceManager.cpp
419 gezelter 1731 src/rnemd/RNEMD.cpp
420 gezelter 1639 src/integrators/Velocitizer.cpp
421 gezelter 1981 src/io/ConstraintWriter.cpp
422 gezelter 1639 src/io/DumpReader.cpp
423     src/io/DumpWriter.cpp
424     src/io/RestReader.cpp
425     src/io/RestWriter.cpp
426     src/io/StatWriter.cpp
427     src/io/ZConsWriter.cpp
428     src/io/ifstrstream.cpp
429     src/math/ParallelRandNumGen.cpp
430 gezelter 1926 src/nonbonded/Electrostatic.cpp
431 gezelter 1639 src/parallel/ForceDecomposition.cpp
432     src/parallel/ForceMatrixDecomposition.cpp
433     src/restraints/RestraintForceManager.cpp
434     src/restraints/ThermoIntegrationForceManager.cpp
435 gezelter 1802 src/selection/DistanceFinder.cpp
436 gezelter 1639 src/utils/ProgressBar.cpp
437 gezelter 1668 src/utils/simError.cpp
438 gezelter 1802 src/utils/OpenMDBitSet.cpp
439 gezelter 1743 src/optimization/Problem.cpp
440 gezelter 1639 )
441    
442 gezelter 1767 IF(ZLIB_FOUND)
443     set(ZLIB_SOURCE
444     src/io/gzstream.cpp
445     )
446     ENDIF(ZLIB_FOUND)
447    
448 gezelter 1639 IF(QHULL_FOUND)
449     set(QHULL_SOURCE
450     src/integrators/LangevinHullDynamics.cpp
451     src/math/Triangle.cpp
452     )
453     set(QHULL_PARALLEL_SOURCE
454     src/integrators/LangevinHullForceManager.cpp
455     src/math/ConvexHull.cpp
456     src/math/AlphaHull.cpp
457     )
458     ENDIF(QHULL_FOUND)
459    
460 gezelter 1767 IF(WIN32)
461     set(GETOPT_SOURCE
462 gezelter 1795 src/utils/wingetopt.cpp
463 gezelter 1767 )
464     ENDIF(WIN32)
465    
466     add_library(openmd_core STATIC ${SOURCE} ${QHULL_SOURCE} ${ZLIB_SOURCE} )
467 gezelter 1639 add_library(openmd_single STATIC ${PARALLEL_SOURCE} ${QHULL_PARALLEL_SOURCE} )
468    
469     IF(MPI_FOUND)
470     add_library(openmd_parallel STATIC ${PARALLEL_SOURCE} ${QHULL_PARALLEL_SOURCE} )
471     set_target_properties(openmd_parallel PROPERTIES
472     COMPILE_DEFINITIONS IS_MPI
473     )
474     ENDIF(MPI_FOUND)
475    
476     add_executable(openmd src/applications/openmd/openmd.cpp)
477     target_link_libraries(openmd openmd_single openmd_core openmd_single openmd_core)
478    
479     if (MPI_FOUND)
480     add_executable(openmd_MPI src/applications/openmd/openmd.cpp)
481     set_target_properties(openmd_MPI PROPERTIES
482     COMPILE_DEFINITIONS IS_MPI
483     )
484     target_link_libraries(openmd_MPI openmd_parallel openmd_core openmd_parallel openmd_core)
485 gezelter 1647 INSTALL(TARGETS
486     openmd_parallel openmd_MPI
487     RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
488     LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
489     ARCHIVE DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
490     )
491 gezelter 1639 ENDIF (MPI_FOUND)
492    
493     set (DUMP2XYZSOURCE
494     src/applications/dump2Xyz/Dump2XYZ.cpp
495 gezelter 1655 src/applications/dump2Xyz/Dump2XYZCmd.cpp
496 gezelter 1639 )
497    
498     set (DYNAMICPROPSSOURCE
499     src/applications/dynamicProps/ActionCorrFunc.cpp
500     src/applications/dynamicProps/CrossTimeCorrFunc.cpp
501     src/applications/dynamicProps/DipoleCorrFunc.cpp
502     src/applications/dynamicProps/DirectionalRCorrFunc.cpp
503     src/applications/dynamicProps/DynamicProps.cpp
504     src/applications/dynamicProps/EnergyCorrFunc.cpp
505     src/applications/dynamicProps/FrameTimeCorrFunc.cpp
506     src/applications/dynamicProps/LegendreCorrFunc.cpp
507 gezelter 1915 src/applications/dynamicProps/LegendreCorrFuncZ.cpp
508 gezelter 1934 src/applications/dynamicProps/cOHz.cpp
509 gezelter 1639 src/applications/dynamicProps/MomentumCorrFunc.cpp
510     src/applications/dynamicProps/ParticleTimeCorrFunc.cpp
511 gezelter 1954 src/applications/dynamicProps/InteractionTimeCorrFunc.cpp
512 gezelter 1639 src/applications/dynamicProps/RadialRCorrFunc.cpp
513     src/applications/dynamicProps/RCorrFunc.cpp
514 gezelter 1811 src/applications/dynamicProps/SelectionCorrFunc.cpp
515 gezelter 1639 src/applications/dynamicProps/StressCorrFunc.cpp
516     src/applications/dynamicProps/SystemDipoleCorrFunc.cpp
517     src/applications/dynamicProps/ThetaCorrFunc.cpp
518     src/applications/dynamicProps/TimeCorrFunc.cpp
519     src/applications/dynamicProps/VCorrFunc.cpp
520 gezelter 1954 src/applications/dynamicProps/BondCorrFunc.cpp
521 gezelter 1655 src/applications/dynamicProps/DynamicPropsCmd.cpp
522 gezelter 1639 )
523    
524     set (HYDROSOURCE
525     src/applications/hydrodynamics/AnalyticalModel.cpp
526     src/applications/hydrodynamics/ApproximationModel.cpp
527     src/applications/hydrodynamics/BeadModel.cpp
528     src/applications/hydrodynamics/CompositeShape.cpp
529     src/applications/hydrodynamics/Hydro.cpp
530     src/applications/hydrodynamics/HydrodynamicsModel.cpp
531     src/applications/hydrodynamics/HydrodynamicsModelFactory.cpp
532     src/applications/hydrodynamics/RoughShell.cpp
533     src/applications/hydrodynamics/ShapeBuilder.cpp
534 gezelter 1655 src/applications/hydrodynamics/HydroCmd.cpp
535 gezelter 1639 )
536    
537     set (STATICPROPSSOURCE
538     src/applications/staticProps/AngleR.cpp
539     src/applications/staticProps/BondAngleDistribution.cpp
540     src/applications/staticProps/BondOrderParameter.cpp
541     src/applications/staticProps/BOPofR.cpp
542     src/applications/staticProps/DensityPlot.cpp
543     src/applications/staticProps/GofAngle2.cpp
544     src/applications/staticProps/GofR.cpp
545     src/applications/staticProps/GofRAngle.cpp
546     src/applications/staticProps/GofRZ.cpp
547     src/applications/staticProps/GofXyz.cpp
548     src/applications/staticProps/GofZ.cpp
549     src/applications/staticProps/Hxy.cpp
550     src/applications/staticProps/NanoLength.cpp
551     src/applications/staticProps/NanoVolume.cpp
552 gezelter 1994 src/applications/staticProps/NitrileFrequencyMap.cpp
553 gezelter 1639 src/applications/staticProps/ObjectCount.cpp
554     src/applications/staticProps/P2OrderParameter.cpp
555     src/applications/staticProps/pAngle.cpp
556     src/applications/staticProps/RadialDistrFunc.cpp
557     src/applications/staticProps/RhoR.cpp
558     src/applications/staticProps/RhoZ.cpp
559     src/applications/staticProps/RippleOP.cpp
560 gezelter 1879 src/applications/staticProps/RNEMDStats.cpp
561 gezelter 1639 src/applications/staticProps/SCDOrderParameter.cpp
562 gezelter 1879 src/applications/staticProps/SpatialStatistics.cpp
563 gezelter 1639 src/applications/staticProps/StaticProps.cpp
564     src/applications/staticProps/TetrahedralityParam.cpp
565 gezelter 1763 src/applications/staticProps/TetrahedralityParamZ.cpp
566 gezelter 1639 src/applications/staticProps/TwoDGofR.cpp
567 gezelter 1655 src/applications/staticProps/StaticPropsCmd.cpp
568 gezelter 1639 )
569    
570     set (NANOPARTICLEBUILDERSOURCE
571     src/applications/nanoparticleBuilder/nanoparticleBuilder.cpp
572     src/applications/nanoparticleBuilder/shapedLatticeSpherical.cpp
573 gezelter 1655 src/applications/nanoparticleBuilder/nanoparticleBuilderCmd.cpp
574 gezelter 1639 )
575    
576 kstocke1 1701 set (NANORODBUILDERSOURCE
577     src/applications/nanoparticleBuilder/nanorodBuilder.cpp
578     src/applications/nanoparticleBuilder/shapedLatticeRod.cpp
579 gezelter 1879 src/applications/nanoparticleBuilder/shapedLatticeEllipsoid.cpp
580 kstocke1 1701 src/applications/nanoparticleBuilder/nanorodBuilderCmd.cpp
581     )
582    
583     set (NANOROD_PENTBUILDERSOURCE
584     src/applications/nanoparticleBuilder/nanorod_pentBuilder.cpp
585     src/applications/nanoparticleBuilder/nanorod_pentBuilderCmd.cpp
586     src/applications/nanoparticleBuilder/shapedLatticePentRod.cpp
587     )
588    
589 gezelter 1879 set (ICOSAHEDRALBUILDERSOURCE
590     src/applications/nanoparticleBuilder/icosahedralBuilder.cpp
591     src/applications/nanoparticleBuilder/icosahedralBuilderCmd.cpp
592     )
593    
594 gezelter 1639 set (RANDOMBUILDERSOURCE
595     src/applications/randomBuilder/randomBuilder.cpp
596 gezelter 1655 src/applications/randomBuilder/randomBuilderCmd.cpp
597 gezelter 1639 )
598    
599     set(SIMPLEBUILDERSOURCE
600     src/applications/simpleBuilder/simpleBuilder.cpp
601 gezelter 1655 src/applications/simpleBuilder/simpleBuilderCmd.cpp
602 gezelter 1639 )
603    
604     set(THERMALIZERSOURCE
605     src/applications/thermalizer/thermalizer.cpp
606 gezelter 1655 src/applications/thermalizer/thermalizerCmd.cpp
607 gezelter 1639 )
608    
609 gezelter 1879 set(RECENTERSOURCE
610     src/applications/recenter/recenter.cpp
611     src/applications/recenter/recenterCmd.cpp
612     )
613    
614 gezelter 1767 add_executable(Dump2XYZ ${DUMP2XYZSOURCE} ${GETOPT_SOURCE})
615 gezelter 1639 target_link_libraries(Dump2XYZ openmd_single openmd_core openmd_single openmd_core)
616 gezelter 1767 add_executable(DynamicProps ${DYNAMICPROPSSOURCE} ${GETOPT_SOURCE})
617 gezelter 1639 target_link_libraries(DynamicProps openmd_single openmd_core openmd_single openmd_core)
618 gezelter 1767 add_executable(Hydro ${HYDROSOURCE} ${GETOPT_SOURCE})
619 gezelter 1639 target_link_libraries(Hydro openmd_single openmd_core openmd_single openmd_core)
620 gezelter 1767 add_executable(StaticProps ${STATICPROPSSOURCE} ${GETOPT_SOURCE})
621 gezelter 1639 target_link_libraries(StaticProps openmd_single openmd_core openmd_single openmd_core)
622 gezelter 1767 add_executable(nanoparticleBuilder ${NANOPARTICLEBUILDERSOURCE} ${GETOPT_SOURCE})
623 gezelter 1807 target_link_libraries(nanoparticleBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
624 gezelter 1767 add_executable(nanorodBuilder ${NANORODBUILDERSOURCE} ${GETOPT_SOURCE})
625 gezelter 1807 target_link_libraries(nanorodBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
626 gezelter 1767 add_executable(nanorod_pentBuilder ${NANOROD_PENTBUILDERSOURCE} ${GETOPT_SOURCE})
627 gezelter 1807 target_link_libraries(nanorod_pentBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
628 gezelter 1879 add_executable(icosahedralBuilder ${ICOSAHEDRALBUILDERSOURCE} ${GETOPT_SOURCE})
629     target_link_libraries(icosahedralBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
630 gezelter 1767 add_executable(randomBuilder ${RANDOMBUILDERSOURCE} ${GETOPT_SOURCE})
631 gezelter 1807 target_link_libraries(randomBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
632 gezelter 1767 add_executable(simpleBuilder ${SIMPLEBUILDERSOURCE} ${GETOPT_SOURCE})
633 gezelter 1807 target_link_libraries(simpleBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
634 gezelter 1767 add_executable(thermalizer ${THERMALIZERSOURCE} ${GETOPT_SOURCE})
635 gezelter 1807 target_link_libraries(thermalizer openmd_single openmd_core openmd_single openmd_core openmd_single)
636 gezelter 1879 add_executable(recenter ${RECENTERSOURCE} ${GETOPT_SOURCE})
637     target_link_libraries(recenter openmd_single openmd_core openmd_single openmd_core openmd_single)
638 gezelter 1639
639     if (OPENBABEL2_FOUND)
640     set (ATOM2MDSOURCE
641     src/applications/atom2md/atom2md.cpp
642     src/applications/atom2md/openmdformat.cpp
643     )
644 gezelter 1767 add_executable(atom2md ${ATOM2MDSOURCE} ${GETOPT_SOURCE})
645 gezelter 1699 target_link_libraries(atom2md openmd_single openmd_core openmd_single openmd_core ${OPENBABEL2_LIBRARIES})
646 gezelter 1647 INSTALL(TARGETS atom2md RUNTIME DESTINATION bin
647     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
648 gezelter 1639 ENDIF (OPENBABEL2_FOUND)
649    
650    
651     set(PY_FILES
652     src/applications/hydrodynamics/diffExplainer
653     src/applications/utilities/affineScale
654     src/applications/utilities/dumpConverter
655     src/applications/utilities/md-solvator
656     src/applications/utilities/md2md
657     src/applications/utilities/mdSplit
658     src/applications/utilities/principalAxisCalculator
659 gezelter 1795 src/applications/utilities/stat2thcond
660 gezelter 1639 src/applications/utilities/stat2visco
661     src/applications/utilities/waterRotator
662 gezelter 1668 src/applications/utilities/waterReplacer
663 gezelter 1639 )
664    
665     IF(PYTHON_EXECUTABLE)
666 gezelter 1795 IF(WIN32)
667     SET(PYEXT ".py")
668     ELSE(WIN32)
669     SET(PYEXT "")
670     ENDIF(WIN32)
671    
672     foreach(PY_FILE ${PY_FILES})
673     GET_FILENAME_COMPONENT(filename "${PY_FILE}" NAME)
674     CONFIGURE_FILE(${PY_FILE}
675     "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PYEXT}" @ONLY)
676     INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PYEXT}"
677     DESTINATION bin
678     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
679     endforeach(PY_FILE)
680 gezelter 1639 ENDIF(PYTHON_EXECUTABLE)
681    
682     set(PERL_FILES
683     src/applications/utilities/solvator
684     src/applications/utilities/waterBoxer
685     )
686    
687     IF(PERL_FOUND)
688 gezelter 1795 IF(WIN32)
689     SET(PLEXT ".PL")
690     ELSE(WIN32)
691     SET(PLEXT "")
692     ENDIF(WIN32)
693 gezelter 1647
694 gezelter 1795 foreach(PERL_FILE ${PERL_FILES})
695     GET_FILENAME_COMPONENT(filename "${PERL_FILE}" NAME)
696     configure_file(${PERL_FILE} "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PLEXT}" @ONLY)
697     INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PLEXT}"
698     DESTINATION bin
699     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
700    
701     endforeach(PERL_FILE)
702 gezelter 1639 ENDIF(PERL_FOUND)
703 gezelter 1647
704 gezelter 1806
705 gezelter 1652 INSTALL(FILES AUTHORS LICENSE README INSTALL DESTINATION .
706 gezelter 1647 PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
707     INSTALL(TARGETS
708     openmd_core
709     openmd_single
710     openmd
711     Dump2XYZ
712     simpleBuilder
713     StaticProps
714     DynamicProps
715     randomBuilder
716     nanoparticleBuilder
717 gezelter 1806 nanorodBuilder
718     nanorod_pentBuilder
719 gezelter 1950 icosahedralBuilder
720 gezelter 1647 thermalizer
721 gezelter 1879 recenter
722 gezelter 1647 Hydro
723     RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
724     LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
725     ARCHIVE DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
726     )
727    
728     install(DIRECTORY forceFields/
729     DESTINATION forceFields
730 gezelter 1650 DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
731     PATTERN ".svn" EXCLUDE
732 gezelter 1647 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
733     install(DIRECTORY samples/
734     DESTINATION samples
735 gezelter 1650 DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
736     PATTERN ".svn" EXCLUDE
737 gezelter 1651 PATTERN "*.dump" EXCLUDE
738     PATTERN "*.stat" EXCLUDE
739 gezelter 1795 PATTERN "*.eor" EXCLUDE
740     PATTERN "*.rnemd" EXCLUDE
741 gezelter 1806 PATTERN "*.fz" EXCLUDE
742 gezelter 1647 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
743 gezelter 1806
744     configure_file( samples/builders/runMe.in
745     "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/runMe" @ONLY)
746     INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/runMe"
747     DESTINATION samples/builders
748     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
749    
750    
751 gezelter 1651 INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/doc/OpenMDmanual.pdf"
752     DESTINATION doc
753     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
754 gezelter 1694
755     message( STATUS)
756     message( STATUS "========== OpenMD Build Information ==========")
757     message( STATUS "Current revision ........... = ${SVN_REV}")
758     message( STATUS "CMAKE_SYSTEM ............... = ${CMAKE_SYSTEM}")
759     message( STATUS "==============================================")
760     message( STATUS "CMAKE_BUILD_TYPE ........... = ${CMAKE_BUILD_TYPE}")
761     message( STATUS "CMAKE_INSTALL_PREFIX ....... = ${CMAKE_INSTALL_PREFIX}")
762 gezelter 1695 message( STATUS "Build as SINGLE_PRECISION .. = ${SINGLE_PRECISION}")
763 gezelter 1694 message( STATUS "CMAKE_CXX_COMPILER ......... = ${CMAKE_CXX_COMPILER}")
764     message( STATUS "MPI_CXX_COMPILER ........... = ${MPI_CXX_COMPILER}")
765     message( STATUS "MPI_CXX_INCLUDE_PATH ....... = ${MPI_CXX_INCLUDE_PATH}")
766     message( STATUS "MPI_CXX_LIBRARIES .......... = ${MPI_CXX_LIBRARIES}")
767 gezelter 1699 message( STATUS "OPENBABEL2_ROOT ............ = ${OPENBABEL2_ROOT}")
768 gezelter 1694 message( STATUS "OPENBABEL2_INCLUDE_DIR ..... = ${OPENBABEL2_INCLUDE_DIR}")
769     message( STATUS "OPENBABEL2_LIBRARIES ....... = ${OPENBABEL2_LIBRARIES}")
770 gezelter 1695 message( STATUS "QHULL_ROOT ................. = ${QHULL_ROOT}")
771 gezelter 1694 message( STATUS "QHULL_INCLUDE_DIR .......... = ${QHULL_INCLUDE_DIR}")
772     message( STATUS "QHULL_LIBRARIES ............ = ${QHULL_LIBRARIES}")
773 gezelter 1695 message( STATUS "ZLIB_ROOT .................. = ${ZLIB_ROOT}")
774 gezelter 1694 message( STATUS "ZLIB_INCLUDE_DIR ........... = ${ZLIB_INCLUDE_DIR}")
775     message( STATUS "ZLIB_LIBRARIES ............. = ${ZLIB_LIBRARIES}")
776 gezelter 1699 message( STATUS "FFTW3_ROOT ................. = ${FFTW3_ROOT}")
777 gezelter 1694 message( STATUS "FFTW3_INCLUDE_DIR .......... = ${FFTW3_INCLUDE_DIR}")
778     message( STATUS "FFTW3_LIBRARIES ............ = ${FFTW3_LIBRARIES}")
779 gezelter 1695 message( STATUS "PERL_EXECUTABLE ............ = ${PERL_EXECUTABLE}")
780     message( STATUS "PYTHON_EXECUTABLE .......... = ${PYTHON_EXECUTABLE}")
781 gezelter 1694 message( STATUS "DOXYGEN_EXECUTABLE ......... = ${DOXYGEN_EXECUTABLE}")
782 gezelter 1695 message( STATUS )
783 gezelter 1696 message( STATUS "To override these options, add -D{OPTION_NAME}=... to the cmake command" )
784     message( STATUS "Particularly useful defines are for:")
785     message( STATUS )
786 gezelter 1699 message( STATUS " -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} (where OpenMD will be installed)")
787     message( STATUS " -DOPENBABEL2_ROOT=/path/to/openbabel")
788     message( STATUS " -DQHULL_ROOT=/path/to/qhull")
789     message( STATUS " -DFFTW3_ROOT=/path/to/fftw3")
790 gezelter 1696 message( STATUS )
791 gezelter 1790 IF(WIN32)
792     message( STATUS "To build and install OpenMD, enter: ")
793     message( STATUS " msbuild /m ALL_BUILD.vcxproj /p:Configuration=${CMAKE_BUILD_TYPE}")
794     message( STATUS "followed by:")
795     message( STATUS " msbuild /m INSTALL.vcxproj /p:Configuration=${CMAKE_BUILD_TYPE}")
796     ELSE(WIN32)
797     message( STATUS "To build and install OpenMD, enter \"make\" and \"make install\"")
798     ENDIF(WIN32)
799 gezelter 1696 message( STATUS )
800 gezelter 1795
801     # build a CPack driven installer package
802     IF(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
803     SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
804     ENDIF()
805     include (InstallRequiredSystemLibraries)
806     set (CPACK_RESOURCE_FILE_LICENSE
807     "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
808     set (CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
809     set (CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
810     include (CPack)