ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/CMakeLists.txt
Revision: 1626
Committed: Tue Sep 13 15:39:54 2011 UTC (13 years, 10 months ago) by gezelter
Content type: text/plain
File size: 4390 byte(s)
Log Message:
Cmake fixes and updates.

File Contents

# Content
1 # Top level cmake script for OpenMD.
2
3 cmake_minimum_required (VERSION 2.6)
4 project(OpenMD)
5
6
7 # OpenMD version number.
8 set (VERSION_MAJOR "2")
9 set (VERSION_MINOR "0")
10 set (VERSION_TINY "0")
11
12 # cmake modules that are needed to build oopse
13 set (CMAKE_MODULE_PATH ${OpenMD_SOURCE_DIR}/cmake/modules)
14
15 enable_language(CXX C)
16
17
18 # Optional libraries: If we can find these, we will build with them
19 # Look for OpenBabel libraries
20 find_package(OpenBabel2)
21 IF(OPENBABEL2_FOUND)
22 SET(USE_OPENBABEL)
23 include_directories(${OPENBABEL2_INCLUDE_DIR})
24 message(STATUS "Openbabel libs: " ${OPENBABEL2_LIBRARIES})
25 # TARGET_LINK_LIBRARIES(${OPENBABEL2_LIBRARIES})
26 ENDIF(OPENBABEL2_FOUND)
27
28 #Look for QHULL Libraries
29 find_package(QHULL)
30 IF(QHULL_FOUND)
31 SET(HAVE_QHULL 1)
32 include_directories(${QHULL_INCLUDE_DIR})
33 LINK_LIBRARIES(${QHULL_LIBRARIES})
34 ENDIF(QHULL_FOUND)
35
36 #Figure out MPI stuff
37 find_package(MPI)
38 if(MPI_FOUND)
39 SET(IS_MPI 1)
40 #add_definitions(-DIS_MPI)
41 endif(MPI_FOUND)
42
43 #Add subversion Information
44 find_package(Subversion)
45 if(Subversion_FOUND)
46 Subversion_WC_INFO(${CMAKE_CURRENT_SOURCE_DIR} ER)
47 set(SUBVERSION_REVISION ${ER_WC_REVISION})
48 endif(Subversion_FOUND)
49 set(CPACK_PACKAGE_VERSION_PATCH "${SUBVERSION_REVISION}")
50
51 # zlib stuff
52 find_package(ZLIB)
53 if(ZLIB_FOUND)
54 SET(HAVE_LIBZ 1)
55 add_definitions(-DHAVE_LIBZ)
56 include_directories(${ZLIB_INCLUDE_DIR})
57 LINK_LIBRARIES(${ZLIB_LIBRARIES})
58 endif(ZLIB_FOUND)
59
60 #FFTW
61 INCLUDE(${CMAKE_MODULE_PATH}/FindFFTW.cmake)
62 IF(FFTW_FOUND)
63 SET(HAVE_LIBFFTW 1)
64 SET(HAVE_FFTW3_H)
65 INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIR})
66 LINK_LIBRARIES(${FFTW_LIBRARIES})
67 ENDIF(FFTW_FOUND)
68
69
70 #include checks
71 include(CheckIncludeFile)
72 CHECK_INCLUDE_FILE(fftw3.h HAVE_FFTW3_H)
73 CHECK_INCLUDE_FILE(fftw.h HAVE_FFWT_H)
74 CHECK_INCLUDE_FILE(dfftw.h HAVE_DFFTW_H)
75 CHECK_INCLUDE_FILE(cmath.h HAVE_CMATH_H)
76 check_include_file (errno.h HAVE_ERRNO_H)
77 check_include_file (inttypes.h HAVE_INTTYPES_H)
78 check_include_file (limits.h HAVE_LIMITS_H)
79 check_include_file (math.h HAVE_MATH_H)
80 check_include_file (memory.h HAVE_MEMORY_H)
81 check_include_file (stdint.h HAVE_STDINT_H)
82 check_include_file (stdio.h HAVE_STDIO_H)
83 check_include_file (stdlib.h HAVE_STDLIB_H)
84 check_include_file (strings.h HAVE_STRINGS_H)
85 check_include_file (string.h HAVE_STRING_H)
86 check_include_file ("sys/param.h" HAVE_SYS_PARAM_H)
87 check_include_file ("sys/pstat.h" HAVE_SYS_PSTAT_H)
88 check_include_file ("sys/select.h" HAVE_SYS_SELECT_H)
89 check_include_file ("sys/socket.h" HAVE_SYS_SOCKET_H)
90 check_include_file ("sys/stat.h" HAVE_SYS_STAT_H)
91 check_include_file ("sys/sysctl.h" HAVE_SYS_SYSCTL_H)
92 check_include_file ("sys/sysinfo.h" HAVE_SYS_SYSINFO_H)
93 check_include_file ("sys/param.h" HAVE_SYS_PARAM_H)
94 check_include_file ("sys/sysmp.h" HAVE_SYS_SYSMP_H)
95 check_include_file ("sys/systemcfg.h" HAVE_SYS_SYSTEMCFG_H)
96 check_include_file ("sys/table.h" HAVE_SYS_TABLE_H)
97
98 find_path (HAVE_SYS_STAT_H stat.h
99 PATHS ${include_locations}
100 PATH_SUFFIXES sys
101 )
102
103 find_path (HAVE_SYS_TYPES_H types.h
104 PATHS ${include_locations}
105 PATH_SUFFIXES sys
106 )
107 find_path (HAVE_UNISTD_H unistd.h ${include_locations})
108
109 #symbol checks
110 include(CheckSymbolExists)
111
112
113 #function checks
114 include(CheckFunctionExists)
115 check_function_exists(floor HAVE_FLOOR)
116 check_function_exists (memset HAVE_MEMSET)
117 check_function_exists (pow HAVE_POW)
118 check_function_exists (sqrt HAVE_SQRT)
119 check_function_exists (strchr HAVE_STRCHR)
120 check_function_exists (strstr HAVE_STRSTR)
121 check_function_exists (sysmp HAVE_SYSMP)
122 check_function_exists (table HAVE_TABLE)
123
124
125
126 include(CMakePrintSystemInformation)
127
128 configure_file (
129 "${PROJECT_SOURCE_DIR}/src/config.h.cmake"
130 "${PROJECT_SOURCE_DIR}/src/config.h"
131 )
132 include_directories (${PROJECT_SOURCE_DIR}/src)
133
134 #CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
135
136
137
138 #Add executables for build
139 set (PROGRAMS openmd Dump2XYZ simpleBuilder StaticProps DynamicProps
140 randomBuilder nanoparticleBuilder thermalizer atom2md Hydro)
141 # Example of how to set core libraries
142 #set(CORELIBS ${GLUT_LIBRARY} ${OPENGL_LIBRARY} m)
143
144 #foreach(program ${PROGRAMS})
145 # add_executable(${program} ${program}.cpp)
146 # target_link_libraries(${program} ${CORELIBS})
147 #endforeach(program)
148
149 #add_subdirectory(src/lattice)
150 #add_subdirectory(src/brains)
151 #add_subdirectory(src/UseTheForce)
152
153
154 #Add subirectories for build
155
156
157 #add_subdirectory(src)
158 add_subdirectory(lib)
159 add_subdirectory(bin)