Merge remote-tracking branch 'origin/release-4-6' into HEAD
[alexxy/gromacs.git] / src / gromacs / CMakeLists.txt
1 set(LIBGROMACS_SOURCES)
2
3 add_subdirectory(legacyheaders)
4 add_subdirectory(gmxlib)
5 add_subdirectory(mdlib)
6 add_subdirectory(gmxpreprocess)
7 add_subdirectory(analysisdata)
8 add_subdirectory(commandline)
9 add_subdirectory(linearalgebra)
10 add_subdirectory(onlinehelp)
11 add_subdirectory(options)
12 add_subdirectory(selection)
13 add_subdirectory(trajectoryanalysis)
14 add_subdirectory(utility)
15
16 file(GLOB LIBGROMACS_HEADERS *.h)
17 install(FILES ${LIBGROMACS_HEADERS} DESTINATION ${INCL_INSTALL_DIR}/gromacs
18         COMPONENT development)
19
20 list(APPEND LIBGROMACS_SOURCES ${GMXLIB_SOURCES} ${MDLIB_SOURCES})
21
22 # add target that generates version.c every time a make is run
23 # only do this if we generate the version
24 if (USE_VERSION_H)
25     add_custom_target(gmx_version ALL
26             COMMAND ${CMAKE_COMMAND} 
27                 -D GIT_EXECUTABLE="${GIT_EXECUTABLE}"
28                 -D GIT_VERSION="${GIT_VERSION}"
29                 -D PROJECT_VERSION="${PROJECT_VERSION}"
30                 -D PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}"
31                 -D VERSION_C_CMAKEIN="${CMAKE_CURRENT_SOURCE_DIR}/version.c.cmakein"
32                 -D VERSION_C_OUT="${CMAKE_CURRENT_BINARY_DIR}/version.c"
33                 -P ${CMAKE_SOURCE_DIR}/cmake/gmxGenerateVersionInfo.cmake 
34             WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/gmxlib 
35             DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/version.c.cmakein
36             COMMENT "Generating version information")
37     list(APPEND LIBGROMACS_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/version.c) # auto-generated
38     set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/version.c 
39                                 PROPERTIES GENERATED true)
40 endif (USE_VERSION_H)
41
42 add_library(libgromacs ${LIBGROMACS_SOURCES})
43 if (USE_VERSION_H)
44     add_dependencies(libgromacs gmx_version)
45 endif (USE_VERSION_H)
46 target_link_libraries(libgromacs
47                       ${GMX_EXTRA_LIBRARIES} ${FFT_LIBRARIES} ${XML_LIBRARIES}
48                       ${THREAD_LIB})
49 set_target_properties(libgromacs PROPERTIES
50                       OUTPUT_NAME "gromacs${GMX_LIBS_SUFFIX}"
51                       SOVERSION ${SOVERSION}
52                       INSTALL_NAME_DIR "${LIB_INSTALL_DIR}")
53
54 install(TARGETS libgromacs DESTINATION ${LIB_INSTALL_DIR} COMPONENT libraries)
55
56 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libgromacs.pc.cmakein
57                ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc @ONLY)
58 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc
59         DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
60         RENAME "libgromacs${GMX_LIBS_SUFFIX}.pc"
61         COMPONENT development)