3 |
|
cmake_minimum_required (VERSION 2.6) |
4 |
|
project(OpenMD) |
5 |
|
|
6 |
– |
|
6 |
|
# OpenMD version number. |
7 |
|
set (VERSION_MAJOR "2") |
8 |
|
set (VERSION_MINOR "0") |
10 |
|
|
11 |
|
# cmake modules that are needed to build oopse |
12 |
|
SET(CMAKE_MODULE_PATH ${OpenMD_SOURCE_DIR}/cmake/modules) |
13 |
< |
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) |
14 |
< |
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) |
13 |
> |
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) |
14 |
> |
SET(CMAKE_INSTALL_PREFIX |
15 |
> |
"/usr/local/openmd" CACHE PATH "OpenMD install prefix" FORCE |
16 |
> |
) |
17 |
> |
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) |
18 |
|
|
19 |
+ |
# ---------- Setup output Directories ------------------------- |
20 |
+ |
SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY |
21 |
+ |
${PROJECT_BINARY_DIR}/lib |
22 |
+ |
CACHE PATH |
23 |
+ |
"Single directory for all shared libraries" |
24 |
+ |
) |
25 |
+ |
# --------- Setup the Executable output Directory ------------- |
26 |
+ |
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY |
27 |
+ |
${PROJECT_BINARY_DIR}/bin |
28 |
+ |
CACHE PATH |
29 |
+ |
"Single directory for all Executables." |
30 |
+ |
) |
31 |
+ |
# --------- Setup the static library directory ------------- |
32 |
+ |
SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY |
33 |
+ |
${PROJECT_BINARY_DIR}/lib |
34 |
+ |
CACHE PATH |
35 |
+ |
"Single directory for all static libraries." |
36 |
+ |
) |
37 |
+ |
|
38 |
+ |
|
39 |
|
enable_language(CXX C) |
40 |
|
|
41 |
|
if ( APPLE ) |
55 |
|
Subversion_WC_LOG(${PROJECT_SOURCE_DIR} Project) |
56 |
|
SET(SVN_REV ${Project_WC_REVISION}) |
57 |
|
ADD_DEFINITIONS( -DSVN_REV=${Project_WC_REVISION} ) |
58 |
+ |
SET(GENERATELOGS "${PROJECT_SOURCE_DIR}/doc/svn2cl") |
59 |
+ |
ADD_CUSTOM_TARGET(ChangeLog |
60 |
+ |
COMMAND ${GENERATELOGS} "--group-by-day" "--include-rev" |
61 |
+ |
"--linelen=78" "--output=${PROJECT_BINARY_DIR}/ChangeLog" "${PROJECT_SOURCE_DIR}" |
62 |
+ |
) |
63 |
|
ENDIF() |
64 |
|
|
65 |
|
# Optional libraries: If we can find these, we will build with them |
80 |
|
LINK_LIBRARIES(${QHULL_LIBRARIES}) |
81 |
|
ENDIF(QHULL_FOUND) |
82 |
|
|
56 |
– |
|
83 |
|
# zlib stuff |
84 |
|
find_package(ZLIB) |
85 |
|
if(ZLIB_FOUND) |
98 |
|
LINK_LIBRARIES(${FFTW_LIBRARIES}) |
99 |
|
ENDIF(FFTW_FOUND) |
100 |
|
|
101 |
+ |
# add a target to generate API documentation with Doxygen |
102 |
+ |
find_package(Doxygen) |
103 |
+ |
if(DOXYGEN_FOUND) |
104 |
+ |
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile" @ONLY) |
105 |
+ |
add_custom_target(doc |
106 |
+ |
${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile" |
107 |
+ |
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc" |
108 |
+ |
COMMENT "Generating API documentation with Doxygen" VERBATIM |
109 |
+ |
) |
110 |
+ |
endif(DOXYGEN_FOUND) |
111 |
|
|
112 |
|
#include checks |
113 |
|
include(CheckIncludeFile) |
159 |
|
SET(PERL_INSTALLDIRS "site" CACHE STRING "Perl installation locations") |
160 |
|
|
161 |
|
|
126 |
– |
include(CMakePrintSystemInformation) |
127 |
– |
|
162 |
|
configure_file ( |
163 |
|
"${PROJECT_SOURCE_DIR}/src/config.h.cmake" |
164 |
< |
"${PROJECT_SOURCE_DIR}/src/config.h" |
165 |
< |
) |
166 |
< |
include_directories (${PROJECT_SOURCE_DIR}/src) |
133 |
< |
|
134 |
< |
#CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) |
164 |
> |
"${PROJECT_BINARY_DIR}/config.h" |
165 |
> |
) |
166 |
> |
include_directories("${PROJECT_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/src") |
167 |
|
|
168 |
|
|
169 |
|
#Add executables for build |
422 |
|
COMPILE_DEFINITIONS IS_MPI |
423 |
|
) |
424 |
|
target_link_libraries(openmd_MPI openmd_parallel openmd_core openmd_parallel openmd_core) |
425 |
+ |
INSTALL(TARGETS |
426 |
+ |
openmd_parallel openmd_MPI |
427 |
+ |
RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE |
428 |
+ |
LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
429 |
+ |
ARCHIVE DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
430 |
+ |
) |
431 |
|
ENDIF (MPI_FOUND) |
432 |
|
|
433 |
|
set (DUMP2XYZSOURCE |
434 |
|
src/applications/dump2Xyz/Dump2XYZ.cpp |
435 |
< |
src/applications/dump2Xyz/Dump2XYZCmd.c |
435 |
> |
src/applications/dump2Xyz/Dump2XYZCmd.cpp |
436 |
|
) |
437 |
|
|
438 |
|
set (DYNAMICPROPSSOURCE |
453 |
|
src/applications/dynamicProps/ThetaCorrFunc.cpp |
454 |
|
src/applications/dynamicProps/TimeCorrFunc.cpp |
455 |
|
src/applications/dynamicProps/VCorrFunc.cpp |
456 |
< |
src/applications/dynamicProps/DynamicPropsCmd.c |
456 |
> |
src/applications/dynamicProps/DynamicPropsCmd.cpp |
457 |
|
) |
458 |
|
|
459 |
|
set (HYDROSOURCE |
466 |
|
src/applications/hydrodynamics/HydrodynamicsModelFactory.cpp |
467 |
|
src/applications/hydrodynamics/RoughShell.cpp |
468 |
|
src/applications/hydrodynamics/ShapeBuilder.cpp |
469 |
< |
src/applications/hydrodynamics/HydroCmd.c |
469 |
> |
src/applications/hydrodynamics/HydroCmd.cpp |
470 |
|
) |
471 |
|
|
472 |
|
set (STATICPROPSSOURCE |
495 |
|
src/applications/staticProps/StaticProps.cpp |
496 |
|
src/applications/staticProps/TetrahedralityParam.cpp |
497 |
|
src/applications/staticProps/TwoDGofR.cpp |
498 |
< |
src/applications/staticProps/StaticPropsCmd.c |
498 |
> |
src/applications/staticProps/StaticPropsCmd.cpp |
499 |
|
) |
500 |
|
|
501 |
|
set (NANOPARTICLEBUILDERSOURCE |
502 |
|
src/applications/nanoparticleBuilder/nanoparticleBuilder.cpp |
503 |
|
src/applications/nanoparticleBuilder/shapedLatticeSpherical.cpp |
504 |
< |
src/applications/nanoparticleBuilder/nanoparticleBuilderCmd.c |
504 |
> |
src/applications/nanoparticleBuilder/nanoparticleBuilderCmd.cpp |
505 |
|
) |
506 |
|
|
507 |
|
set (RANDOMBUILDERSOURCE |
508 |
|
src/applications/randomBuilder/randomBuilder.cpp |
509 |
< |
src/applications/randomBuilder/randomBuilderCmd.c |
509 |
> |
src/applications/randomBuilder/randomBuilderCmd.cpp |
510 |
|
) |
511 |
|
|
512 |
|
set(SIMPLEBUILDERSOURCE |
513 |
|
src/applications/simpleBuilder/simpleBuilder.cpp |
514 |
< |
src/applications/simpleBuilder/simpleBuilderCmd.c |
514 |
> |
src/applications/simpleBuilder/simpleBuilderCmd.cpp |
515 |
|
) |
516 |
|
|
517 |
|
set(THERMALIZERSOURCE |
518 |
|
src/applications/thermalizer/thermalizer.cpp |
519 |
< |
src/applications/thermalizer/thermalizerCmd.c |
519 |
> |
src/applications/thermalizer/thermalizerCmd.cpp |
520 |
|
) |
521 |
|
|
522 |
|
add_executable(Dump2XYZ ${DUMP2XYZSOURCE}) |
543 |
|
) |
544 |
|
add_executable(atom2md ${ATOM2MDSOURCE}) |
545 |
|
target_link_libraries(atom2md openmd_single openmd_core openmd_single openmd_core ${OPENBABEL2_LIBRARIES}) |
546 |
+ |
INSTALL(TARGETS atom2md RUNTIME DESTINATION bin |
547 |
+ |
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) |
548 |
|
ENDIF (OPENBABEL2_FOUND) |
549 |
|
|
550 |
|
|
562 |
|
|
563 |
|
IF(PYTHON_EXECUTABLE) |
564 |
|
foreach(PY_FILE ${PY_FILES}) |
565 |
< |
configure_file(${PY_FILE} "${EXECUTABLE_OUTPUT_PATH}"/${PY_FILE} @ONLY) |
565 |
> |
GET_FILENAME_COMPONENT(filename "${PY_FILE}" NAME) |
566 |
> |
CONFIGURE_FILE(${PY_FILE} |
567 |
> |
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}" @ONLY) |
568 |
> |
INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}" |
569 |
> |
DESTINATION bin |
570 |
> |
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) |
571 |
|
endforeach(PY_FILE) |
527 |
– |
#INSTALL(FILES ${PY_FILES} DESTINATION ${EXECUTABLE_OUTPUT_PATH}) |
572 |
|
ENDIF(PYTHON_EXECUTABLE) |
573 |
|
|
574 |
|
set(PERL_FILES |
578 |
|
|
579 |
|
IF(PERL_FOUND) |
580 |
|
foreach(PERL_FILE ${PERL_FILES}) |
581 |
< |
configure_file(${PERL_FILE} "${EXECUTABLE_OUTPUT_PATH}"/${PERL_FILE} @ONLY) |
581 |
> |
GET_FILENAME_COMPONENT(filename "${PERL_FILE}" NAME) |
582 |
> |
configure_file(${PERL_FILE} "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}" @ONLY) |
583 |
> |
INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}" |
584 |
> |
DESTINATION bin |
585 |
> |
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) |
586 |
> |
|
587 |
|
endforeach(PERL_FILE) |
539 |
– |
#INSTALL(FILES ${PERL_FILES} DESTINATION ${EXECUTABLE_OUTPUT_PATH}) |
588 |
|
ENDIF(PERL_FOUND) |
589 |
+ |
|
590 |
+ |
INSTALL(FILES AUTHORS LICENSE README INSTALL DESTINATION . |
591 |
+ |
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) |
592 |
+ |
INSTALL(TARGETS |
593 |
+ |
openmd_core |
594 |
+ |
openmd_single |
595 |
+ |
openmd |
596 |
+ |
Dump2XYZ |
597 |
+ |
simpleBuilder |
598 |
+ |
StaticProps |
599 |
+ |
DynamicProps |
600 |
+ |
randomBuilder |
601 |
+ |
nanoparticleBuilder |
602 |
+ |
thermalizer |
603 |
+ |
Hydro |
604 |
+ |
RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE |
605 |
+ |
LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
606 |
+ |
ARCHIVE DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
607 |
+ |
) |
608 |
+ |
|
609 |
+ |
install(DIRECTORY forceFields/ |
610 |
+ |
DESTINATION forceFields |
611 |
+ |
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE |
612 |
+ |
PATTERN ".svn" EXCLUDE |
613 |
+ |
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) |
614 |
+ |
install(DIRECTORY samples/ |
615 |
+ |
DESTINATION samples |
616 |
+ |
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE |
617 |
+ |
PATTERN ".svn" EXCLUDE |
618 |
+ |
PATTERN "*.dump" EXCLUDE |
619 |
+ |
PATTERN "*.stat" EXCLUDE |
620 |
+ |
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) |
621 |
+ |
INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/doc/OpenMDmanual.pdf" |
622 |
+ |
DESTINATION doc |
623 |
+ |
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) |