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 1693 by gezelter, Fri Jan 6 19:03:05 2012 UTC vs.
Revision 1694 by gezelter, Thu Mar 15 23:51:48 2012 UTC

# Line 1 | Line 1
1   # Top level cmake script for OpenMD.
2 < project(OpenMD)
3 < # project(OpenMD CXX)
2 > project(OpenMD CXX)
3 > cmake_minimum_required(VERSION 2.8.5)
4  
5 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
6
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")  
19
20 # Should
36   option(SINGLE_PRECISION "Build Single precision (float) version" OFF)
37  
23
38   IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
39    SET(CMAKE_INSTALL_PREFIX
40      "/usr/local/openmd" CACHE PATH "OpenMD install prefix" FORCE
# Line 46 | Line 60 | SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
60    "Single directory for all static libraries."
61    )
62  
49 if ( APPLE )
50 set(MPI_COMPILER /opt/local/lib/openmpi/bin/mpic++)
51 set(MPI_LIBRARY "MPI_LIBRARY-NOTFOUND" )
52 endif( APPLE )
53 FIND_PACKAGE(MPI)
54 IF ( MPI_FOUND )
55  SET(CMAKE_REQUIRED_INCLUDES "${MPI_INCLUDE_PATH};${CMAKE_REQUIRED_INCLUDES}")
56  INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH})
57 ENDIF()
58
63   FIND_PACKAGE(Subversion)
64   IF ( Subversion_FOUND AND EXISTS ${PROJECT_SOURCE_DIR}/.svn )
65    Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
66 <  MESSAGE("Current revision is ${Project_WC_REVISION}")
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} )
# Line 70 | Line 74 | ENDIF()
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  
74 include(CheckIncludeFile)
75 include(CheckIncludeFileCXX)
76 include(CheckSymbolExists)
77 include(CheckLibraryExists)
78 include(CheckTypeSize)
79 include(CheckCSourceCompiles)
80 check_include_file(conio.h      HAVE_CONIO_H)
81 check_symbol_exists(strncasecmp   "string.h"   HAVE_STRNCASECMP)
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 <  message(STATUS "Openbabel libs: " ${OPENBABEL2_LIBRARIES})
89 < #  TARGET_LINK_LIBRARIES(${OPENBABEL2_LIBRARIES})
86 >  # link libraries are added only for targets that need them.
87   ENDIF(OPENBABEL2_FOUND)
88  
89   #Look for QHULL Libraries
90 < find_package(QHULL)
90 > find_package(Qhull)
91   IF(QHULL_FOUND)
92    SET(HAVE_QHULL 1)
93    include_directories(${QHULL_INCLUDE_DIR})
# Line 107 | Line 104 | endif(ZLIB_FOUND)
104   endif(ZLIB_FOUND)
105  
106   #FFTW
107 < FIND_PACKAGE(FFTW)
108 < IF(FFTW_FOUND)
107 > IF(SINGLE_PRECISION)
108 >  find_package(FFTW3 COMPONENTS single)
109 > else()
110 >  find_package(FFTW3 COMPONENTS double)
111 > endif(SINGLE_PRECISION)
112 > if (FFTW3_FOUND)
113 >  include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${FFTW3_INCLUDE_DIR})
114    SET(HAVE_LIBFFTW 1)
115    SET(HAVE_FFTW3_H 1)
116 <  INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIR})
117 <  LINK_LIBRARIES(${FFTW_LIBRARIES})
118 < ENDIF(FFTW_FOUND)
116 >  INCLUDE_DIRECTORIES(${FFTW3_INCLUDE_DIR})
117 >  LINK_LIBRARIES(${FFTW3_LIBRARIES})
118 > endif (FFTW3_FOUND)
119  
120 +
121   # add a target to generate API documentation with Doxygen
122   find_package(Doxygen)
123   if(DOXYGEN_FOUND)
# Line 148 | Line 151 | include_directories("${PROJECT_BINARY_DIR}" "${PROJECT
151   )
152   include_directories("${PROJECT_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/src")
153  
151
154   #Add executables for build
155   set (PROGRAMS
156   openmd
# Line 605 | Line 607 | INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/doc/OpenMDm
607   INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/doc/OpenMDmanual.pdf"
608          DESTINATION doc
609          PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
610 +
611 + message( STATUS)
612 + message( STATUS "========== OpenMD Build Information ==========")
613 + message( STATUS "Current revision ........... = ${SVN_REV}")
614 + message( STATUS "CMAKE_SYSTEM ............... = ${CMAKE_SYSTEM}")
615 + message( STATUS "==============================================")
616 + message( STATUS "CMAKE_BUILD_TYPE ........... = ${CMAKE_BUILD_TYPE}")
617 + message( STATUS "CMAKE_INSTALL_PREFIX ....... = ${CMAKE_INSTALL_PREFIX}")
618 + message( STATUS "CMAKE_CXX_COMPILER ......... = ${CMAKE_CXX_COMPILER}")
619 + message( STATUS "MPI_CXX_COMPILER ........... = ${MPI_CXX_COMPILER}")
620 + message( STATUS "MPI_CXX_INCLUDE_PATH ....... = ${MPI_CXX_INCLUDE_PATH}")
621 + message( STATUS "MPI_CXX_LIBRARIES .......... = ${MPI_CXX_LIBRARIES}")
622 + message( STATUS "Build as SINGLE_PRECISION .. = ${SINGLE_PRECISION}")
623 + message( STATUS "OPENBABEL2_INCLUDE_DIR ..... = ${OPENBABEL2_INCLUDE_DIR}")
624 + message( STATUS "OPENBABEL2_LIBRARIES ....... = ${OPENBABEL2_LIBRARIES}")
625 + message( STATUS "QHULL_INCLUDE_DIR .......... = ${QHULL_INCLUDE_DIR}")
626 + message( STATUS "QHULL_LIBRARIES ............ = ${QHULL_LIBRARIES}")
627 + message( STATUS "ZLIB_INCLUDE_DIR ........... = ${ZLIB_INCLUDE_DIR}")
628 + message( STATUS "ZLIB_LIBRARIES ............. = ${ZLIB_LIBRARIES}")
629 + message( STATUS "FFTW3_INCLUDE_DIR .......... = ${FFTW3_INCLUDE_DIR}")
630 + message( STATUS "FFTW3_LIBRARIES ............ = ${FFTW3_LIBRARIES}")
631 + message( STATUS "DOXYGEN_EXECUTABLE ......... = ${DOXYGEN_EXECUTABLE}")
632 + message( STATUS "PERL_EXECUTABLE ............ = ${PERL}")
633 + message( STATUS "PYTHON_EXECUTABLE .......... = ${PYTHON}")
634 + message( STATUS "To override these options, add -D{OPTION_NAME}=... to the cmake command")
635 + message(STATUS)
636 + message(STATUS "To build and install OpenMD, enter \"make\" and \"make install\"")

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines