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 |
|
|
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) |
157 |
|
ENDIF(PYTHON_EXECUTABLE) |
158 |
|
|
159 |
|
SET(PERL_INSTALLDIRS "site" CACHE STRING "Perl installation locations") |
124 |
– |
|
160 |
|
|
126 |
– |
include(CMakePrintSystemInformation) |
161 |
|
|
162 |
|
configure_file ( |
163 |
|
"${PROJECT_SOURCE_DIR}/src/config.h.cmake" |
424 |
|
COMPILE_DEFINITIONS IS_MPI |
425 |
|
) |
426 |
|
target_link_libraries(openmd_MPI openmd_parallel openmd_core openmd_parallel openmd_core) |
427 |
+ |
INSTALL(TARGETS |
428 |
+ |
openmd_parallel openmd_MPI |
429 |
+ |
RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE |
430 |
+ |
LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
431 |
+ |
ARCHIVE DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
432 |
+ |
) |
433 |
|
ENDIF (MPI_FOUND) |
434 |
|
|
435 |
|
set (DUMP2XYZSOURCE |
545 |
|
) |
546 |
|
add_executable(atom2md ${ATOM2MDSOURCE}) |
547 |
|
target_link_libraries(atom2md openmd_single openmd_core openmd_single openmd_core ${OPENBABEL2_LIBRARIES}) |
548 |
+ |
INSTALL(TARGETS atom2md RUNTIME DESTINATION bin |
549 |
+ |
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) |
550 |
|
ENDIF (OPENBABEL2_FOUND) |
551 |
|
|
552 |
|
|
564 |
|
|
565 |
|
IF(PYTHON_EXECUTABLE) |
566 |
|
foreach(PY_FILE ${PY_FILES}) |
567 |
< |
configure_file(${PY_FILE} "${EXECUTABLE_OUTPUT_PATH}"/${PY_FILE} @ONLY) |
567 |
> |
GET_FILENAME_COMPONENT(filename "${PY_FILE}" NAME) |
568 |
> |
CONFIGURE_FILE(${PY_FILE} |
569 |
> |
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}" @ONLY) |
570 |
> |
INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}" |
571 |
> |
DESTINATION bin |
572 |
> |
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) |
573 |
|
endforeach(PY_FILE) |
527 |
– |
#INSTALL(FILES ${PY_FILES} DESTINATION ${EXECUTABLE_OUTPUT_PATH}) |
574 |
|
ENDIF(PYTHON_EXECUTABLE) |
575 |
|
|
576 |
|
set(PERL_FILES |
580 |
|
|
581 |
|
IF(PERL_FOUND) |
582 |
|
foreach(PERL_FILE ${PERL_FILES}) |
583 |
< |
configure_file(${PERL_FILE} "${EXECUTABLE_OUTPUT_PATH}"/${PERL_FILE} @ONLY) |
583 |
> |
GET_FILENAME_COMPONENT(filename "${PERL_FILE}" NAME) |
584 |
> |
configure_file(${PERL_FILE} "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}" @ONLY) |
585 |
> |
INSTALL(FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${filename}" |
586 |
> |
DESTINATION bin |
587 |
> |
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) |
588 |
> |
|
589 |
|
endforeach(PERL_FILE) |
539 |
– |
#INSTALL(FILES ${PERL_FILES} DESTINATION ${EXECUTABLE_OUTPUT_PATH}) |
590 |
|
ENDIF(PERL_FOUND) |
591 |
+ |
|
592 |
+ |
INSTALL(FILES AUTHORS LICENSE README INSTALL DESTINATION . |
593 |
+ |
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) |
594 |
+ |
INSTALL(TARGETS |
595 |
+ |
openmd_core |
596 |
+ |
openmd_single |
597 |
+ |
openmd |
598 |
+ |
Dump2XYZ |
599 |
+ |
simpleBuilder |
600 |
+ |
StaticProps |
601 |
+ |
DynamicProps |
602 |
+ |
randomBuilder |
603 |
+ |
nanoparticleBuilder |
604 |
+ |
thermalizer |
605 |
+ |
Hydro |
606 |
+ |
RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE |
607 |
+ |
LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
608 |
+ |
ARCHIVE DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
609 |
+ |
) |
610 |
+ |
|
611 |
+ |
install(DIRECTORY forceFields/ |
612 |
+ |
DESTINATION forceFields |
613 |
+ |
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE |
614 |
+ |
PATTERN ".svn" EXCLUDE |
615 |
+ |
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) |
616 |
+ |
install(DIRECTORY samples/ |
617 |
+ |
DESTINATION samples |
618 |
+ |
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE |
619 |
+ |
PATTERN ".svn" EXCLUDE |
620 |
+ |
PATTERN "*.dump" EXCLUDE |
621 |
+ |
PATTERN "*.stat" EXCLUDE |
622 |
+ |
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) |
623 |
+ |
INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/doc/OpenMDmanual.pdf" |
624 |
+ |
DESTINATION doc |
625 |
+ |
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) |