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 (13 years 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

# Content
1 # Top level cmake script for OpenMD.
2 project(OpenMD CXX)
3 cmake_minimum_required(VERSION 2.8.5)
4
5 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 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 include(CheckCXXCompilerFlag)
29 include(CheckIncludeFileCXX)
30 include(CheckCXXSymbolExists)
31
32 # OpenMD version number.
33 set (VERSION_MAJOR "2")
34 set (VERSION_MINOR "0")
35 set (VERSION_TINY "0")
36 option(SINGLE_PRECISION "Build Single precision (float) version" OFF)
37
38 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
44 # ---------- 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 FIND_PACKAGE(Subversion)
64 IF ( Subversion_FOUND AND EXISTS ${PROJECT_SOURCE_DIR}/.svn )
65 Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
66 MESSAGE(STATUS "Current revision is ${Project_WC_REVISION}")
67 Subversion_WC_LOG(${PROJECT_SOURCE_DIR} Project)
68 SET(SVN_REV ${Project_WC_REVISION})
69 ADD_DEFINITIONS( -DSVN_REV=${Project_WC_REVISION} )
70 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 ENDIF()
76
77 check_include_file_cxx(conio.h HAVE_CONIO_H)
78 check_cxx_symbol_exists(strncasecmp "string.h" HAVE_STRNCASECMP)
79
80 # Optional libraries: If we can find these, we will build with them
81 # Look for OpenBabel libraries
82 find_package(OpenBabel2)
83 IF(OPENBABEL2_FOUND)
84 SET(USE_OPENBABEL)
85 include_directories(${OPENBABEL2_INCLUDE_DIR})
86 # link libraries are added only for targets that need them.
87 ELSE(OPENBABEL2_FOUND)
88 MESSAGE(STATUS "No OpenBabel found - will not build atom2md")
89 ENDIF(OPENBABEL2_FOUND)
90
91 #Look for QHULL Libraries
92 set(QHULL_USE_STATIC 1)
93 find_package(Qhull)
94 IF(QHULL_FOUND)
95 SET(HAVE_QHULL 1)
96 include_directories(${QHULL_INCLUDE_DIR})
97 LINK_LIBRARIES(${QHULL_LIBRARIES})
98 ELSE(QHULL_FOUND)
99 MESSAGE(STATUS "No Qhull found - will be missing some features")
100 ENDIF(QHULL_FOUND)
101
102 # 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 ELSE(ZLIB_FOUND)
110 MESSAGE(STATUS "No zlib found - will be missing compressed dump files")
111 endif(ZLIB_FOUND)
112
113 #FFTW3
114 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 SET(HAVE_LIBFFTW 1)
122 SET(HAVE_FFTW3_H 1)
123 INCLUDE_DIRECTORIES(${FFTW3_INCLUDE_DIR})
124 LINK_LIBRARIES(${FFTW3_LIBRARIES})
125 ELSE(FFTW3_FOUND)
126 MESSAGE(STATUS "No fftw3 found - will be missing some analysis modules")
127 endif (FFTW3_FOUND)
128
129
130 # 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
141 FIND_PACKAGE(Perl)
142 IF(PERL_FOUND)
143 SET(PERL ${PERL_EXECUTABLE})
144 ELSE(PERL_FOUND)
145 MESSAGE(STATUS "Failed to find perl - some scripts will not be made")
146 ENDIF(PERL_FOUND)
147
148 SET(PERL_INSTALLDIRS "site" CACHE STRING "Perl installation
149 locations")
150
151 FIND_PACKAGE(PythonInterp)
152 IF(PYTHON_EXECUTABLE)
153 SET(PYTHON ${PYTHON_EXECUTABLE})
154 ELSE(PYTHON_EXECUTABLE)
155 MESSAGE(STATUS "Failed to find python - some scripts will not be made")
156 ENDIF(PYTHON_EXECUTABLE)
157
158 configure_file (
159 "${PROJECT_SOURCE_DIR}/src/config.h.cmake"
160 "${PROJECT_BINARY_DIR}/config.h"
161 )
162 include_directories("${PROJECT_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/src")
163
164 #Add executables for build
165 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
178 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 src/brains/ForceField.cpp
211 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 src/integrators/FluctuatingChargeNVT.cpp
223 src/integrators/FluctuatingChargePropagator.cpp
224 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 src/io/FluctuatingChargeAtomTypesSectionParser.cpp
247 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 src/io/PolarizableAtomTypesSectionParser.cpp
258 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 src/types/DirectionalAdapter.cpp
327 src/types/EAMAdapter.cpp
328 src/types/FixedChargeAdapter.cpp
329 src/types/FluctuatingChargeAdapter.cpp
330 src/types/FragmentStamp.cpp
331 src/types/GayBerneAdapter.cpp
332 src/types/ImproperCosineInversionType.cpp
333 src/types/InversionStamp.cpp
334 src/types/LennardJonesAdapter.cpp
335 src/types/MoleculeStamp.cpp
336 src/types/MultipoleAdapter.cpp
337 src/types/NonBondedInteractionType.cpp
338 src/types/PolarizableAdapter.cpp
339 src/types/RestraintStamp.cpp
340 src/types/RigidBodyStamp.cpp
341 src/types/ShapeAtomType.cpp
342 src/types/StickyAdapter.cpp
343 src/types/SuttonChenAdapter.cpp
344 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
365 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 src/utils/simError.cpp
391 )
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 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 ENDIF (MPI_FOUND)
431
432 set (DUMP2XYZSOURCE
433 src/applications/dump2Xyz/Dump2XYZ.cpp
434 src/applications/dump2Xyz/Dump2XYZCmd.cpp
435 )
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 src/applications/dynamicProps/DynamicPropsCmd.cpp
456 )
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 src/applications/hydrodynamics/HydroCmd.cpp
469 )
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 src/applications/staticProps/StaticPropsCmd.cpp
498 )
499
500 set (NANOPARTICLEBUILDERSOURCE
501 src/applications/nanoparticleBuilder/nanoparticleBuilder.cpp
502 src/applications/nanoparticleBuilder/shapedLatticeSpherical.cpp
503 src/applications/nanoparticleBuilder/nanoparticleBuilderCmd.cpp
504 )
505
506 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 set (RANDOMBUILDERSOURCE
519 src/applications/randomBuilder/randomBuilder.cpp
520 src/applications/randomBuilder/randomBuilderCmd.cpp
521 )
522
523 set(SIMPLEBUILDERSOURCE
524 src/applications/simpleBuilder/simpleBuilder.cpp
525 src/applications/simpleBuilder/simpleBuilderCmd.cpp
526 )
527
528 set(THERMALIZERSOURCE
529 src/applications/thermalizer/thermalizer.cpp
530 src/applications/thermalizer/thermalizerCmd.cpp
531 )
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 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 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 target_link_libraries(atom2md openmd_single openmd_core openmd_single openmd_core ${OPENBABEL2_LIBRARIES})
561 INSTALL(TARGETS atom2md RUNTIME DESTINATION bin
562 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
563 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 src/applications/utilities/waterReplacer
577 )
578
579 IF(PYTHON_EXECUTABLE)
580 foreach(PY_FILE ${PY_FILES})
581 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 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 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 endforeach(PERL_FILE)
604 ENDIF(PERL_FOUND)
605
606 INSTALL(FILES AUTHORS LICENSE README INSTALL DESTINATION .
607 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 DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
628 PATTERN ".svn" EXCLUDE
629 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
630 install(DIRECTORY samples/
631 DESTINATION samples
632 DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
633 PATTERN ".svn" EXCLUDE
634 PATTERN "*.dump" EXCLUDE
635 PATTERN "*.stat" EXCLUDE
636 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
637 INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/doc/OpenMDmanual.pdf"
638 DESTINATION doc
639 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
640
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 message( STATUS "Build as SINGLE_PRECISION .. = ${SINGLE_PRECISION}")
649 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 message( STATUS "OPENBABEL2_ROOT ............ = ${OPENBABEL2_ROOT}")
654 message( STATUS "OPENBABEL2_INCLUDE_DIR ..... = ${OPENBABEL2_INCLUDE_DIR}")
655 message( STATUS "OPENBABEL2_LIBRARIES ....... = ${OPENBABEL2_LIBRARIES}")
656 message( STATUS "QHULL_ROOT ................. = ${QHULL_ROOT}")
657 message( STATUS "QHULL_INCLUDE_DIR .......... = ${QHULL_INCLUDE_DIR}")
658 message( STATUS "QHULL_LIBRARIES ............ = ${QHULL_LIBRARIES}")
659 message( STATUS "ZLIB_ROOT .................. = ${ZLIB_ROOT}")
660 message( STATUS "ZLIB_INCLUDE_DIR ........... = ${ZLIB_INCLUDE_DIR}")
661 message( STATUS "ZLIB_LIBRARIES ............. = ${ZLIB_LIBRARIES}")
662 message( STATUS "FFTW3_ROOT ................. = ${FFTW3_ROOT}")
663 message( STATUS "FFTW3_INCLUDE_DIR .......... = ${FFTW3_INCLUDE_DIR}")
664 message( STATUS "FFTW3_LIBRARIES ............ = ${FFTW3_LIBRARIES}")
665 message( STATUS "PERL_EXECUTABLE ............ = ${PERL_EXECUTABLE}")
666 message( STATUS "PYTHON_EXECUTABLE .......... = ${PYTHON_EXECUTABLE}")
667 message( STATUS "DOXYGEN_EXECUTABLE ......... = ${DOXYGEN_EXECUTABLE}")
668 message( STATUS )
669 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 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 message( STATUS )
677 message( STATUS "To build and install OpenMD, enter \"make\" and \"make install\"")
678 message( STATUS )