ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/CMakeLists.txt
(Generate patch)

Comparing branches/development/CMakeLists.txt (file contents):
Revision 1639 by gezelter, Sat Sep 24 20:18:07 2011 UTC vs.
Revision 1812 by gezelter, Fri Nov 16 21:18:42 2012 UTC

# Line 1 | Line 1
1   # Top level cmake script for OpenMD.
2 + project(OpenMD CXX)
3 + cmake_minimum_required(VERSION 2.8.5)
4  
5 < cmake_minimum_required (VERSION 2.6)
4 < project(OpenMD)
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 + IF(WIN32)
12 +   ADD_DEFINITIONS(/D _CRT_SECURE_NO_WARNINGS)
13 + ENDIF(WIN32)
14 +
15 + 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 + include(CheckCXXCompilerFlag)
33 + include(CheckIncludeFileCXX)
34 + include(CheckCXXSymbolExists)
35 +
36   # OpenMD version number.
37   set (VERSION_MAJOR "2")
38   set (VERSION_MINOR "0")
39   set (VERSION_TINY "0")  
40 + option(SINGLE_PRECISION "Build Single precision (float) version" OFF)
41  
42 < # cmake modules that are needed to build oopse
43 < SET(CMAKE_MODULE_PATH ${OpenMD_SOURCE_DIR}/cmake/modules)
44 < SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
45 < SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
42 > IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
43 >  SET(CMAKE_INSTALL_PREFIX
44 >    "/usr/local/openmd" CACHE PATH "OpenMD install prefix" FORCE
45 >    )
46 > ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
47  
48 < enable_language(CXX  C)
48 > # ---------- Setup output Directories -------------------------
49 > SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY
50 >  ${PROJECT_BINARY_DIR}/lib
51 >  CACHE PATH
52 >  "Single directory for all shared libraries"
53 >  )
54 > # --------- Setup the Executable output Directory -------------
55 > SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY
56 >  ${PROJECT_BINARY_DIR}/bin
57 >  CACHE PATH
58 >  "Single directory for all Executables."
59 >  )
60 > # --------- Setup the static library directory -------------
61 > SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
62 >  ${PROJECT_BINARY_DIR}/lib
63 >  CACHE PATH
64 >  "Single directory for all static libraries."
65 >  )
66  
19 if ( APPLE )
20 set(MPI_COMPILER /opt/local/lib/openmpi/bin/mpic++)
21 set(MPI_LIBRARY "MPI_LIBRARY-NOTFOUND" )
22 endif( APPLE )
23 FIND_PACKAGE(MPI)
24 IF ( MPI_FOUND )
25  SET(CMAKE_REQUIRED_INCLUDES "${MPI_INCLUDE_PATH};${CMAKE_REQUIRED_INCLUDES}")
26  INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH})
27 ENDIF()
28
67   FIND_PACKAGE(Subversion)
68   IF ( Subversion_FOUND AND EXISTS ${PROJECT_SOURCE_DIR}/.svn )
69    Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
70 <  MESSAGE("Current revision is ${Project_WC_REVISION}")
70 >  MESSAGE(STATUS "Current revision is ${Project_WC_REVISION}")
71    Subversion_WC_LOG(${PROJECT_SOURCE_DIR} Project)
72    SET(SVN_REV ${Project_WC_REVISION})
73    ADD_DEFINITIONS( -DSVN_REV=${Project_WC_REVISION} )
74 +  SET(GENERATELOGS "${PROJECT_SOURCE_DIR}/doc/svn2cl")
75 +  ADD_CUSTOM_TARGET(ChangeLog
76 +     COMMAND ${GENERATELOGS} "--group-by-day" "--include-rev"
77 +     "--linelen=78" "--output=${PROJECT_BINARY_DIR}/ChangeLog" "${PROJECT_SOURCE_DIR}"
78 +  )
79   ENDIF()
80  
81 + check_include_file_cxx(conio.h      HAVE_CONIO_H)
82 + check_cxx_symbol_exists(strncasecmp   "string.h"   HAVE_STRNCASECMP)
83 +
84   # Optional libraries: If we can find these, we will build with them
85   # Look for OpenBabel libraries
86   find_package(OpenBabel2)
87   IF(OPENBABEL2_FOUND)
88    SET(USE_OPENBABEL)
89    include_directories(${OPENBABEL2_INCLUDE_DIR})
90 <  message(STATUS "Openbabel libs: " ${OPENBABEL2_LIBRARIES})
91 < #  TARGET_LINK_LIBRARIES(${OPENBABEL2_LIBRARIES})
90 >  # link libraries are added only for targets that need them.
91 > ELSE(OPENBABEL2_FOUND)
92 >  MESSAGE(STATUS "No OpenBabel found - will not build atom2md")
93   ENDIF(OPENBABEL2_FOUND)
94  
95 + find_package(Eigen3)
96 + if(EIGEN3_FOUND)
97 +  add_definitions(-DHAVE_EIGEN -DHAVE_EIGEN3)
98 +  include_directories(${EIGEN3_INCLUDE_DIR})
99 + else()
100 +  find_package(Eigen2) # find and setup Eigen2
101 +  if(EIGEN2_FOUND)
102 +    add_definitions (-DHAVE_EIGEN)
103 +    include_directories(${EIGEN2_INCLUDE_DIR})
104 +  endif()
105 + endif()
106 +
107   #Look for QHULL Libraries
108 < find_package(QHULL)
108 > set(QHULL_USE_STATIC 1)
109 > find_package(Qhull)
110   IF(QHULL_FOUND)
111    SET(HAVE_QHULL 1)
112    include_directories(${QHULL_INCLUDE_DIR})
113    LINK_LIBRARIES(${QHULL_LIBRARIES})
114 + ELSE(QHULL_FOUND)
115 +  MESSAGE(STATUS "No Qhull found - will be missing some features")
116   ENDIF(QHULL_FOUND)
117  
56
118   # zlib stuff
119   find_package(ZLIB)
120   if(ZLIB_FOUND)
# Line 61 | Line 122 | if(ZLIB_FOUND)
122    add_definitions(-DHAVE_LIBZ)
123    include_directories(${ZLIB_INCLUDE_DIR})
124    LINK_LIBRARIES(${ZLIB_LIBRARIES})
125 + ELSE(ZLIB_FOUND)
126 +  MESSAGE(STATUS "No zlib found - will be missing compressed dump files")
127   endif(ZLIB_FOUND)
128  
129 < #FFTW
130 < INCLUDE(${CMAKE_MODULE_PATH}/FindFFTW.cmake)
131 < IF(FFTW_FOUND)
129 > #FFTW3
130 > IF(SINGLE_PRECISION)
131 >  find_package(FFTW3 COMPONENTS single)
132 > else()
133 >  find_package(FFTW3 COMPONENTS double)
134 > endif(SINGLE_PRECISION)
135 > if (FFTW3_FOUND)
136 >  include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${FFTW3_INCLUDE_DIR})
137    SET(HAVE_LIBFFTW 1)
138 <  SET(HAVE_FFTW3_H)
139 <  INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIR})
140 <  LINK_LIBRARIES(${FFTW_LIBRARIES})
141 < ENDIF(FFTW_FOUND)
138 >  SET(HAVE_FFTW3_H 1)
139 >  INCLUDE_DIRECTORIES(${FFTW3_INCLUDE_DIR})
140 >  LINK_LIBRARIES(${FFTW3_LIBRARIES})
141 > ELSE(FFTW3_FOUND)
142 >  MESSAGE(STATUS "No fftw3 found - will be missing some analysis modules")
143 > endif (FFTW3_FOUND)
144  
145  
146 < #include checks
147 < include(CheckIncludeFile)
148 < CHECK_INCLUDE_FILE(fftw3.h HAVE_FFTW3_H)
149 < CHECK_INCLUDE_FILE(fftw.h HAVE_FFWT_H)
150 < CHECK_INCLUDE_FILE(dfftw.h HAVE_DFFTW_H)
151 < CHECK_INCLUDE_FILE(cmath.h HAVE_CMATH_H)
152 < check_include_file(limits.h HAVE_LIMITS_H)
153 < check_include_file(stdlib.h HAVE_STDLIB_H)
154 < check_include_file(string.h HAVE_STRING_H)
155 < check_include_file("sys/ioctl.h" HAVE_SYS_IOCTL_H)
86 < check_include_file(unistd.h HAVE_UNISTD_H)
146 > # add a target to generate API documentation with Doxygen
147 > find_package(Doxygen)
148 > if(DOXYGEN_FOUND)
149 >  configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile" @ONLY)
150 >  add_custom_target(doc
151 >    ${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile"
152 >    WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc"
153 >    COMMENT "Generating API documentation with Doxygen" VERBATIM
154 >  )
155 > endif(DOXYGEN_FOUND)
156  
88 #symbol checks
89 include(CheckSymbolExists)
90
91 #function checks
92 include(CheckFunctionExists)
93 check_function_exists(atexit HAVE_ATEXIT)
94 check_function_exists(floor HAVE_FLOOR)
95 check_function_exists(pow HAVE_POW)
96 check_function_exists(select HAVE_SELECT)
97 check_function_exists(sqrt HAVE_SQRT)
98 check_function_exists(strcasecmp HAVE_STRCASECMP)
99 check_function_exists(strchr HAVE_STRCHR)
100 check_function_exists(strdup HAVE_STRDUP)
101 check_function_exists(strncasecmp HAVE_STRNCASECMP)
102 check_function_exists(strstr HAVE_STRSTR)
103 check_function_exists(strtol HAVE_STRTOL)
104 check_function_exists(strtoull HAVE_STRTOULL)
105 check_function_exists(sysmp HAVE_SYSMP)
106 check_function_exists(table HAVE_TABLE)
107
108
157   FIND_PACKAGE(Perl)
158   IF(PERL_FOUND)
159    SET(PERL ${PERL_EXECUTABLE})
160   ELSE(PERL_FOUND)
161 <  MESSAGE(STATUS "Failed to find perl")
161 >  MESSAGE(STATUS "Failed to find perl - some scripts will not be made")
162   ENDIF(PERL_FOUND)
163  
164 + SET(PERL_INSTALLDIRS "site" CACHE STRING "Perl installation
165 + locations")
166 +
167   FIND_PACKAGE(PythonInterp)
168   IF(PYTHON_EXECUTABLE)
169    SET(PYTHON ${PYTHON_EXECUTABLE})
170   ELSE(PYTHON_EXECUTABLE)
171 <  MESSAGE(STATUS "Failed to find python")
171 >  MESSAGE(STATUS "Failed to find python - some scripts will not be made")
172   ENDIF(PYTHON_EXECUTABLE)
173  
123 SET(PERL_INSTALLDIRS "site" CACHE STRING "Perl installation locations")
124
125
126 include(CMakePrintSystemInformation)
127
174   configure_file (
175    "${PROJECT_SOURCE_DIR}/src/config.h.cmake"
176 <  "${PROJECT_SOURCE_DIR}/src/config.h"
177 <  )
178 < include_directories (${PROJECT_SOURCE_DIR}/src)
176 >  "${PROJECT_BINARY_DIR}/config.h"
177 > )
178 > include_directories("${PROJECT_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/src")
179  
134 #CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
135
136
180   #Add executables for build
181   set (PROGRAMS
182   openmd
# Line 180 | Line 223 | src/brains/DataStorage.cpp
223   src/antlr/TreeParser.cpp
224   src/brains/BlockSnapshotManager.cpp
225   src/brains/DataStorage.cpp
226 + src/brains/ForceField.cpp
227   src/brains/MoleculeCreator.cpp
228   src/brains/PairList.cpp
229   src/brains/Register.cpp
230   src/brains/SimSnapshotManager.cpp
231   src/brains/Snapshot.cpp
232   src/brains/Stats.cpp
233 + src/constraints/Shake.cpp
234   src/constraints/Rattle.cpp
235   src/hydrodynamics/Ellipsoid.cpp
236   src/hydrodynamics/HydroProp.cpp
237   src/hydrodynamics/Sphere.cpp
238   src/integrators/DLM.cpp
239 + src/flucq/FluctuatingChargeLangevin.cpp
240 + src/flucq/FluctuatingChargeParameters.cpp
241 + src/flucq/FluctuatingChargeNVT.cpp
242 + src/flucq/FluctuatingChargePropagator.cpp
243   src/integrators/Integrator.cpp
244   src/integrators/IntegratorFactory.cpp
245   src/integrators/LangevinDynamics.cpp
# Line 213 | Line 262 | src/io/EAMAtomTypesSectionParser.cpp
262   src/io/ChargeAtomTypesSectionParser.cpp
263   src/io/DirectionalAtomTypesSectionParser.cpp
264   src/io/EAMAtomTypesSectionParser.cpp
265 + src/io/FluctuatingChargeAtomTypesSectionParser.cpp
266   src/io/ForceFieldOptions.cpp
267   src/io/GayBerneAtomTypesSectionParser.cpp
268   src/io/Globals.cpp
219 src/io/gzstream.cpp
269   src/io/InversionTypesSectionParser.cpp
270   src/io/LennardJonesAtomTypesSectionParser.cpp
271   src/io/MultipoleAtomTypesSectionParser.cpp
272   src/io/NonBondedInteractionsSectionParser.cpp
273   src/io/OptionSectionParser.cpp
274   src/io/ParamConstraint.cpp
275 + src/io/PolarizableAtomTypesSectionParser.cpp
276   src/io/SCAtomTypesSectionParser.cpp
277   src/io/SectionParser.cpp
278   src/io/SectionParserManager.cpp
# Line 249 | Line 299 | src/mdParser/MDTreeParser.cpp
299   src/mdParser/MDLexer.cpp
300   src/mdParser/MDParser.cpp
301   src/mdParser/MDTreeParser.cpp
302 < src/minimizers/MinimizerFactory.cpp
303 < src/minimizers/MinimizerParameterSet.cpp
302 > src/optimization/OptimizationFactory.cpp
303 > src/optimization/Armijo.cpp
304 > src/optimization/BFGS.cpp
305 > src/optimization/ConjugateGradient.cpp
306 > src/optimization/Constraint.cpp
307 > src/optimization/EndCriteria.cpp
308 > src/optimization/LineSearch.cpp
309 > src/optimization/LineSearchBasedMethod.cpp
310 > src/optimization/SteepestDescent.cpp
311 > src/optimization/PotentialEnergyObjectiveFunction.cpp
312 > src/optimization/MinimizerParameters.cpp
313   src/nonbonded/EAM.cpp
314   src/nonbonded/Electrostatic.cpp
315   src/nonbonded/GB.cpp
# Line 273 | Line 332 | src/primitives/UreyBradleyBend.cpp
332   src/primitives/StuntDouble.cpp
333   src/primitives/Torsion.cpp
334   src/primitives/UreyBradleyBend.cpp
335 + src/perturbations/ElectricField.cpp
336   src/restraints/MolecularRestraint.cpp
337   src/restraints/ObjectRestraint.cpp
278 src/selection/DistanceFinder.cpp
338   src/selection/HullFinder.cpp
339   src/selection/IndexFinder.cpp
340   src/selection/NameFinder.cpp
# Line 291 | Line 350 | src/types/CutoffGroupStamp.cpp
350   src/types/CharmmTorsionType.cpp
351   src/types/Component.cpp
352   src/types/CutoffGroupStamp.cpp
353 < src/types/DirectionalAtomType.cpp
353 > src/types/DirectionalAdapter.cpp
354 > src/types/EAMAdapter.cpp
355 > src/types/FixedChargeAdapter.cpp
356 > src/types/FluctuatingChargeAdapter.cpp
357   src/types/FragmentStamp.cpp
358 + src/types/GayBerneAdapter.cpp
359   src/types/ImproperCosineInversionType.cpp
360   src/types/InversionStamp.cpp
361 + src/types/LennardJonesAdapter.cpp
362   src/types/MoleculeStamp.cpp
363 + src/types/MultipoleAdapter.cpp
364   src/types/NonBondedInteractionType.cpp
365 + src/types/PolarizableAdapter.cpp
366   src/types/RestraintStamp.cpp
367   src/types/RigidBodyStamp.cpp
368   src/types/ShapeAtomType.cpp
369 + src/types/StickyAdapter.cpp
370 + src/types/SuttonChenAdapter.cpp
371   src/types/TorsionStamp.cpp
372   src/types/ZconsStamp.cpp
305 src/UseTheForce/Amber_FF.cpp
306 src/UseTheForce/CLAYFF.cpp
307 src/UseTheForce/DUFF.cpp
308 src/UseTheForce/EADM_FF.cpp
309 src/UseTheForce/EAM_FF.cpp
310 src/UseTheForce/ForceField.cpp
311 src/UseTheForce/ForceFieldFactory.cpp
312 src/UseTheForce/MnM_FF.cpp
313 src/UseTheForce/SC_FF.cpp
314 src/UseTheForce/SHAPES_FF.cpp
373   src/utils/ElementsTable.cpp
374   src/utils/MoLocator.cpp
317 src/utils/OpenMDBitSet.cpp
375   src/utils/PropertyMap.cpp
376   src/utils/StringTokenizer.cpp
377   src/utils/StringUtils.cpp
# Line 329 | Line 386 | src/visitors/ZconsVisitor.cpp
386   src/visitors/ReplacementVisitor.cpp
387   src/visitors/RigidBodyVisitor.cpp
388   src/visitors/ZconsVisitor.cpp
389 + src/rnemd/RNEMDParameters.cpp
390   )
391  
392   set( PARALLEL_SOURCE
# Line 337 | Line 395 | src/constraints/ZconstraintForceManager.cpp
395   src/brains/SimInfo.cpp
396   src/brains/Thermo.cpp
397   src/constraints/ZconstraintForceManager.cpp
398 < src/integrators/RNEMD.cpp
398 > src/flucq/FluctuatingChargeConstraints.cpp
399 > src/flucq/FluctuatingChargeObjectiveFunction.cpp
400 > src/integrators/LangevinHullForceManager.cpp
401 > src/rnemd/RNEMD.cpp
402   src/integrators/Velocitizer.cpp
403   src/io/DumpReader.cpp
404   src/io/DumpWriter.cpp
# Line 347 | Line 408 | src/math/ParallelRandNumGen.cpp
408   src/io/ZConsWriter.cpp
409   src/io/ifstrstream.cpp
410   src/math/ParallelRandNumGen.cpp
350 src/minimizers/CGFamilyMinimizer.cpp
351 src/minimizers/Minimizer.cpp
352 src/minimizers/PRCG.cpp
353 src/minimizers/SDMinimizer.cpp
411   src/parallel/ForceDecomposition.cpp
412   src/parallel/ForceMatrixDecomposition.cpp
413   src/restraints/RestraintForceManager.cpp
414   src/restraints/ThermoIntegrationForceManager.cpp
415 + src/selection/DistanceFinder.cpp
416   src/utils/ProgressBar.cpp
417 < src/utils/simError.c
417 > src/utils/simError.cpp
418 > src/utils/OpenMDBitSet.cpp
419 > src/optimization/Problem.cpp
420   )
421  
422 + IF(ZLIB_FOUND)
423 + set(ZLIB_SOURCE
424 + src/io/gzstream.cpp
425 + )
426 + ENDIF(ZLIB_FOUND)
427 +
428   IF(QHULL_FOUND)
429   set(QHULL_SOURCE
430   src/integrators/LangevinHullDynamics.cpp
# Line 371 | Line 437 | ENDIF(QHULL_FOUND)
437   )
438   ENDIF(QHULL_FOUND)
439  
440 < add_library(openmd_core STATIC ${SOURCE} ${QHULL_SOURCE} )
440 > IF(WIN32)
441 > set(GETOPT_SOURCE
442 > src/utils/wingetopt.cpp
443 > )
444 > ENDIF(WIN32)
445 >
446 > add_library(openmd_core STATIC ${SOURCE} ${QHULL_SOURCE} ${ZLIB_SOURCE} )
447   add_library(openmd_single STATIC ${PARALLEL_SOURCE} ${QHULL_PARALLEL_SOURCE} )
448  
449   IF(MPI_FOUND)
# Line 390 | Line 462 | target_link_libraries(openmd_MPI openmd_parallel openm
462   COMPILE_DEFINITIONS IS_MPI
463   )
464   target_link_libraries(openmd_MPI openmd_parallel openmd_core openmd_parallel openmd_core)
465 +  INSTALL(TARGETS
466 +        openmd_parallel openmd_MPI
467 +  RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
468 +  LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
469 +  ARCHIVE DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
470 + )
471   ENDIF (MPI_FOUND)
472  
473   set (DUMP2XYZSOURCE
474   src/applications/dump2Xyz/Dump2XYZ.cpp
475 < src/applications/dump2Xyz/Dump2XYZCmd.c
475 > src/applications/dump2Xyz/Dump2XYZCmd.cpp
476   )
477  
478   set (DYNAMICPROPSSOURCE
# Line 410 | Line 488 | src/applications/dynamicProps/RCorrFunc.cpp
488   src/applications/dynamicProps/ParticleTimeCorrFunc.cpp
489   src/applications/dynamicProps/RadialRCorrFunc.cpp
490   src/applications/dynamicProps/RCorrFunc.cpp
491 + src/applications/dynamicProps/SelectionCorrFunc.cpp
492   src/applications/dynamicProps/StressCorrFunc.cpp
493   src/applications/dynamicProps/SystemDipoleCorrFunc.cpp
494   src/applications/dynamicProps/ThetaCorrFunc.cpp
495   src/applications/dynamicProps/TimeCorrFunc.cpp
496   src/applications/dynamicProps/VCorrFunc.cpp
497 < src/applications/dynamicProps/DynamicPropsCmd.c
497 > src/applications/dynamicProps/DynamicPropsCmd.cpp
498   )
499  
500   set (HYDROSOURCE
# Line 428 | Line 507 | src/applications/hydrodynamics/ShapeBuilder.cpp
507   src/applications/hydrodynamics/HydrodynamicsModelFactory.cpp
508   src/applications/hydrodynamics/RoughShell.cpp
509   src/applications/hydrodynamics/ShapeBuilder.cpp
510 < src/applications/hydrodynamics/HydroCmd.c
510 > src/applications/hydrodynamics/HydroCmd.cpp
511   )
512  
513   set (STATICPROPSSOURCE
# Line 456 | Line 535 | src/applications/staticProps/TetrahedralityParam.cpp
535   src/applications/staticProps/SCDOrderParameter.cpp
536   src/applications/staticProps/StaticProps.cpp
537   src/applications/staticProps/TetrahedralityParam.cpp
538 + src/applications/staticProps/TetrahedralityParamZ.cpp
539   src/applications/staticProps/TwoDGofR.cpp
540 < src/applications/staticProps/StaticPropsCmd.c
540 > src/applications/staticProps/StaticPropsCmd.cpp
541   )
542  
543   set (NANOPARTICLEBUILDERSOURCE
544   src/applications/nanoparticleBuilder/nanoparticleBuilder.cpp
545   src/applications/nanoparticleBuilder/shapedLatticeSpherical.cpp
546 < src/applications/nanoparticleBuilder/nanoparticleBuilderCmd.c
546 > src/applications/nanoparticleBuilder/nanoparticleBuilderCmd.cpp
547   )
548  
549 + set (NANORODBUILDERSOURCE
550 + src/applications/nanoparticleBuilder/nanorodBuilder.cpp
551 + src/applications/nanoparticleBuilder/shapedLatticeRod.cpp
552 + src/applications/nanoparticleBuilder/nanorodBuilderCmd.cpp
553 + )
554 +
555 + set (NANOROD_PENTBUILDERSOURCE
556 + src/applications/nanoparticleBuilder/nanorod_pentBuilder.cpp
557 + src/applications/nanoparticleBuilder/nanorod_pentBuilderCmd.cpp
558 + src/applications/nanoparticleBuilder/shapedLatticePentRod.cpp
559 + )
560 +
561   set (RANDOMBUILDERSOURCE
562   src/applications/randomBuilder/randomBuilder.cpp
563 < src/applications/randomBuilder/randomBuilderCmd.c
563 > src/applications/randomBuilder/randomBuilderCmd.cpp
564   )
565  
566   set(SIMPLEBUILDERSOURCE
567   src/applications/simpleBuilder/simpleBuilder.cpp
568 < src/applications/simpleBuilder/simpleBuilderCmd.c
568 > src/applications/simpleBuilder/simpleBuilderCmd.cpp
569   )
570  
571   set(THERMALIZERSOURCE
572   src/applications/thermalizer/thermalizer.cpp
573 < src/applications/thermalizer/thermalizerCmd.c
573 > src/applications/thermalizer/thermalizerCmd.cpp
574   )
575  
576 < add_executable(Dump2XYZ ${DUMP2XYZSOURCE})
576 > add_executable(Dump2XYZ ${DUMP2XYZSOURCE} ${GETOPT_SOURCE})
577   target_link_libraries(Dump2XYZ openmd_single openmd_core openmd_single openmd_core)
578 < add_executable(DynamicProps ${DYNAMICPROPSSOURCE})
578 > add_executable(DynamicProps ${DYNAMICPROPSSOURCE} ${GETOPT_SOURCE})
579   target_link_libraries(DynamicProps openmd_single openmd_core openmd_single openmd_core)
580 < add_executable(Hydro ${HYDROSOURCE})
580 > add_executable(Hydro ${HYDROSOURCE} ${GETOPT_SOURCE})
581   target_link_libraries(Hydro openmd_single openmd_core openmd_single openmd_core)
582 < add_executable(StaticProps ${STATICPROPSSOURCE})
582 > add_executable(StaticProps ${STATICPROPSSOURCE} ${GETOPT_SOURCE})
583   target_link_libraries(StaticProps openmd_single openmd_core openmd_single openmd_core)
584 < add_executable(nanoparticleBuilder ${NANOPARTICLEBUILDERSOURCE})
585 < target_link_libraries(nanoparticleBuilder openmd_single openmd_core openmd_single openmd_core)
586 < add_executable(randomBuilder ${RANDOMBUILDERSOURCE})
587 < target_link_libraries(randomBuilder openmd_single openmd_core openmd_single openmd_core)
588 < add_executable(simpleBuilder ${SIMPLEBUILDERSOURCE})
589 < target_link_libraries(simpleBuilder openmd_single openmd_core openmd_single openmd_core)
590 < add_executable(thermalizer ${THERMALIZERSOURCE})
591 < target_link_libraries(thermalizer openmd_single openmd_core openmd_single openmd_core)
584 > add_executable(nanoparticleBuilder ${NANOPARTICLEBUILDERSOURCE} ${GETOPT_SOURCE})
585 > target_link_libraries(nanoparticleBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
586 > add_executable(nanorodBuilder ${NANORODBUILDERSOURCE} ${GETOPT_SOURCE})
587 > target_link_libraries(nanorodBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
588 > add_executable(nanorod_pentBuilder ${NANOROD_PENTBUILDERSOURCE} ${GETOPT_SOURCE})
589 > target_link_libraries(nanorod_pentBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
590 > add_executable(randomBuilder ${RANDOMBUILDERSOURCE} ${GETOPT_SOURCE})
591 > target_link_libraries(randomBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
592 > add_executable(simpleBuilder ${SIMPLEBUILDERSOURCE} ${GETOPT_SOURCE})
593 > target_link_libraries(simpleBuilder openmd_single openmd_core openmd_single openmd_core openmd_single)
594 > add_executable(thermalizer ${THERMALIZERSOURCE} ${GETOPT_SOURCE})
595 > target_link_libraries(thermalizer openmd_single openmd_core openmd_single openmd_core openmd_single)
596  
597   if (OPENBABEL2_FOUND)
598   set (ATOM2MDSOURCE
599   src/applications/atom2md/atom2md.cpp
600   src/applications/atom2md/openmdformat.cpp
601   )
602 <  add_executable(atom2md ${ATOM2MDSOURCE})
602 >  add_executable(atom2md ${ATOM2MDSOURCE} ${GETOPT_SOURCE})
603    target_link_libraries(atom2md openmd_single openmd_core openmd_single openmd_core ${OPENBABEL2_LIBRARIES})
604 +  INSTALL(TARGETS atom2md RUNTIME DESTINATION bin
605 +          PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
606   ENDIF (OPENBABEL2_FOUND)
607  
608  
# Line 516 | Line 614 | src/applications/utilities/principalAxisCalculator
614   src/applications/utilities/md2md
615   src/applications/utilities/mdSplit
616   src/applications/utilities/principalAxisCalculator
617 + src/applications/utilities/stat2thcond
618   src/applications/utilities/stat2visco
619   src/applications/utilities/waterRotator
620 + src/applications/utilities/waterReplacer
621   )
622  
623   IF(PYTHON_EXECUTABLE)
624 <   foreach(PY_FILE ${PY_FILES})
625 <      configure_file(${PY_FILE} "${EXECUTABLE_OUTPUT_PATH}"/${PY_FILE} @ONLY)
626 <   endforeach(PY_FILE)
627 < #INSTALL(FILES ${PY_FILES} DESTINATION ${EXECUTABLE_OUTPUT_PATH})
624 >  IF(WIN32)
625 >    SET(PYEXT ".py")
626 >  ELSE(WIN32)
627 >    SET(PYEXT "")
628 >  ENDIF(WIN32)
629 >
630 >  foreach(PY_FILE ${PY_FILES})
631 >    GET_FILENAME_COMPONENT(filename "${PY_FILE}" NAME)
632 >    CONFIGURE_FILE(${PY_FILE}
633 >                  "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PYEXT}" @ONLY)
634 >    INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PYEXT}"
635 >            DESTINATION bin
636 >            PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
637 >  endforeach(PY_FILE)
638   ENDIF(PYTHON_EXECUTABLE)
639  
640   set(PERL_FILES
# Line 533 | Line 643 | IF(PERL_FOUND)
643   )
644  
645   IF(PERL_FOUND)
646 <   foreach(PERL_FILE ${PERL_FILES})
647 <      configure_file(${PERL_FILE} "${EXECUTABLE_OUTPUT_PATH}"/${PERL_FILE} @ONLY)
648 <   endforeach(PERL_FILE)
649 < #INSTALL(FILES ${PERL_FILES} DESTINATION ${EXECUTABLE_OUTPUT_PATH})
646 >  IF(WIN32)
647 >    SET(PLEXT ".PL")
648 >  ELSE(WIN32)
649 >    SET(PLEXT "")
650 >  ENDIF(WIN32)
651 >
652 >  foreach(PERL_FILE ${PERL_FILES})
653 >     GET_FILENAME_COMPONENT(filename "${PERL_FILE}" NAME)
654 >     configure_file(${PERL_FILE} "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PLEXT}" @ONLY)
655 >     INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}${PLEXT}"
656 >             DESTINATION bin
657 >             PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
658 >
659 >  endforeach(PERL_FILE)
660   ENDIF(PERL_FOUND)
661 +
662 +
663 + INSTALL(FILES AUTHORS LICENSE README INSTALL DESTINATION .
664 +        PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
665 + INSTALL(TARGETS
666 +        openmd_core
667 +        openmd_single
668 +        openmd
669 +        Dump2XYZ
670 +        simpleBuilder
671 +        StaticProps
672 +        DynamicProps
673 +        randomBuilder
674 +        nanoparticleBuilder
675 +        nanorodBuilder
676 +        nanorod_pentBuilder
677 +        thermalizer
678 +        Hydro
679 +  RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
680 +  LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
681 +  ARCHIVE DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
682 + )
683 +
684 + install(DIRECTORY forceFields/  
685 +        DESTINATION forceFields
686 +        DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
687 +        PATTERN ".svn" EXCLUDE
688 +        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
689 + install(DIRECTORY samples/      
690 +        DESTINATION samples
691 +        DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
692 +        PATTERN ".svn" EXCLUDE
693 +        PATTERN "*.dump" EXCLUDE
694 +        PATTERN "*.stat" EXCLUDE
695 +        PATTERN "*.eor" EXCLUDE
696 +        PATTERN "*.rnemd" EXCLUDE
697 +        PATTERN "*.fz" EXCLUDE
698 +        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
699 +
700 + configure_file( samples/builders/runMe.in
701 +                "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/runMe" @ONLY)
702 + INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/runMe"
703 +             DESTINATION samples/builders
704 +             PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)                
705 +
706 +
707 + INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/doc/OpenMDmanual.pdf"
708 +        DESTINATION doc
709 +        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
710 +
711 + message( STATUS)
712 + message( STATUS "========== OpenMD Build Information ==========")
713 + message( STATUS "Current revision ........... = ${SVN_REV}")
714 + message( STATUS "CMAKE_SYSTEM ............... = ${CMAKE_SYSTEM}")
715 + message( STATUS "==============================================")
716 + message( STATUS "CMAKE_BUILD_TYPE ........... = ${CMAKE_BUILD_TYPE}")
717 + message( STATUS "CMAKE_INSTALL_PREFIX ....... = ${CMAKE_INSTALL_PREFIX}")
718 + message( STATUS "Build as SINGLE_PRECISION .. = ${SINGLE_PRECISION}")
719 + message( STATUS "CMAKE_CXX_COMPILER ......... = ${CMAKE_CXX_COMPILER}")
720 + message( STATUS "MPI_CXX_COMPILER ........... = ${MPI_CXX_COMPILER}")
721 + message( STATUS "MPI_CXX_INCLUDE_PATH ....... = ${MPI_CXX_INCLUDE_PATH}")
722 + message( STATUS "MPI_CXX_LIBRARIES .......... = ${MPI_CXX_LIBRARIES}")
723 + message( STATUS "OPENBABEL2_ROOT ............ = ${OPENBABEL2_ROOT}")
724 + message( STATUS "OPENBABEL2_INCLUDE_DIR ..... = ${OPENBABEL2_INCLUDE_DIR}")
725 + message( STATUS "OPENBABEL2_LIBRARIES ....... = ${OPENBABEL2_LIBRARIES}")
726 + message( STATUS "QHULL_ROOT ................. = ${QHULL_ROOT}")
727 + message( STATUS "QHULL_INCLUDE_DIR .......... = ${QHULL_INCLUDE_DIR}")
728 + message( STATUS "QHULL_LIBRARIES ............ = ${QHULL_LIBRARIES}")
729 + message( STATUS "ZLIB_ROOT .................. = ${ZLIB_ROOT}")
730 + message( STATUS "ZLIB_INCLUDE_DIR ........... = ${ZLIB_INCLUDE_DIR}")
731 + message( STATUS "ZLIB_LIBRARIES ............. = ${ZLIB_LIBRARIES}")
732 + message( STATUS "FFTW3_ROOT ................. = ${FFTW3_ROOT}")
733 + message( STATUS "FFTW3_INCLUDE_DIR .......... = ${FFTW3_INCLUDE_DIR}")
734 + message( STATUS "FFTW3_LIBRARIES ............ = ${FFTW3_LIBRARIES}")
735 + message( STATUS "PERL_EXECUTABLE ............ = ${PERL_EXECUTABLE}")
736 + message( STATUS "PYTHON_EXECUTABLE .......... = ${PYTHON_EXECUTABLE}")
737 + message( STATUS "DOXYGEN_EXECUTABLE ......... = ${DOXYGEN_EXECUTABLE}")
738 + message( STATUS )
739 + message( STATUS "To override these options, add -D{OPTION_NAME}=... to the cmake command" )
740 + message( STATUS "Particularly useful defines are for:")
741 + message( STATUS )
742 + message( STATUS "  -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} (where OpenMD will be installed)")
743 + message( STATUS "       -DOPENBABEL2_ROOT=/path/to/openbabel")
744 + message( STATUS "            -DQHULL_ROOT=/path/to/qhull")
745 + message( STATUS "            -DFFTW3_ROOT=/path/to/fftw3")
746 + message( STATUS )
747 + message( STATUS "To build and install OpenMD, enter \"make\" and \"make install\"")
748 + message( STATUS )
749 +
750 + # build a CPack driven installer package
751 + IF(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
752 +   SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
753 + ENDIF()
754 + include (InstallRequiredSystemLibraries)
755 + set (CPACK_RESOURCE_FILE_LICENSE  
756 +     "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
757 + set (CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
758 + set (CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
759 + include (CPack)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines