Merge commit '4d39dbdaa88b63df182fb3ca1d9133f2809277c1' into cpp-migration
authorTeemu Murtola <teemu.murtola@cbr.su.se>
Sun, 26 Dec 2010 15:29:22 +0000 (17:29 +0200)
committerTeemu Murtola <teemu.murtola@cbr.su.se>
Sun, 26 Dec 2010 15:29:22 +0000 (17:29 +0200)
Build system had to be restructured for clarity, but otherwise the merge
was successful.

Conflicts:
src/CMakeLists.txt
src/gromacs/CMakeLists.txt

1  2 
CMakeLists.txt
src/gromacs/CMakeLists.txt
src/gromacs/errorreporting/CMakeLists.txt
src/gromacs/fatalerror/CMakeLists.txt
src/gromacs/options/CMakeLists.txt
src/gromacs/options/tests/CMakeLists.txt

diff --cc CMakeLists.txt
Simple merge
index 56aeadccfaf4ade8954a6982fcb4fb7a0721e63b,1b43cdc669ba006942ca2ae1e872d744d665a679..ce6932d5a533c83497d8701427413e58a98b874f
@@@ -1,73 -1,13 +1,82 @@@
 -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
++set(LIBGROMACS_SOURCES)
 +add_subdirectory(legacyheaders)
 +add_subdirectory(gmxlib)
 +add_subdirectory(mdlib)
++add_subdirectory(errorreporting)
++add_subdirectory(fatalerror)
+ add_subdirectory(options)
 -file(GLOB GMXLIB_SOURCES */*.cpp */*/*.cpp)
 -file(GLOB_RECURSE NOT_GMXLIB_SOURCES */tests/*.cpp)
 -list(REMOVE_ITEM GMXLIB_SOURCES ${NOT_GMXLIB_SOURCES})
++file(GLOB LIBGROMACS_HEADERS *.h)
++install(FILES ${LIBGROMACS_HEADERS} DESTINATION ${INCL_INSTALL_DIR}/gromacs
++        COMPONENT development)
  
 -add_library(gromacs ${GMXLIB_SOURCES})
 -target_link_libraries(gromacs gmx ${GMX_EXTRA_LIBRARIES} ${THREAD_LIB})
 -set_target_properties(gromacs PROPERTIES OUTPUT_NAME "gromacs${GMX_LIBS_SUFFIX}" SOVERSION ${SOVERSION} INSTALL_NAME_DIR "${LIB_INSTALL_DIR}")
 +# only fiddle with assembly kernels if we're not doing OpenMM build
 +if(NOT GMX_OPENMM) 
 +if(GMX_ASM_USEASM-NASM)
 +  enable_language(ASM-NASM)
 +  # if NASM is used, we need a special build command for windows...
 +  FOREACH(SRC ${GMX_SSEKERNEL_ASM_SRC})
 +    GET_FILENAME_COMPONENT(FILE_BASE ${SRC} NAME_WE)
 +    SET(OBJ ${CMAKE_CURRENT_BINARY_DIR}/${FILE_BASE}${CMAKE_C_OUTPUT_EXTENSION})
  
 -install(TARGETS gromacs DESTINATION ${LIB_INSTALL_DIR})
 +    ADD_CUSTOM_COMMAND(OUTPUT ${OBJ}
 +                       MAIN_DEPENDENCY ${SRC}
 +                       COMMAND ${CMAKE_ASM-NASM_COMPILER} -f ${CMAKE_ASM-NASM_OBJECT_FORMAT} -o ${OBJ} ${SRC})
 +
 +    SET(ALL_ASM_OBJS ${ALL_ASM_OBJS} ${OBJ})
 +  ENDFOREACH(SRC ${GMX_SSEKERNEL_ASM_SRC})
 +  set(GMX_SSEKERNEL_ASM_SRC ${ALL_ASM_OBJS})
 +else(GMX_ASM_USEASM-NASM)
 +  enable_language(ASM-ATT)
 +  SET(CMAKE_ASM-ATT_COMPILER ${CMAKE_C_COMPILER})
 +  if(GMX_IA32_ASM)
 +    set_source_files_properties(${GMX_SSEKERNEL_ASM_SRC} PROPERTIES COMPILE_FLAGS "-c -m32")
 +  else()
 +    set_source_files_properties(${GMX_SSEKERNEL_ASM_SRC} PROPERTIES COMPILE_FLAGS "-c -m64")
 +  endif()
 +endif(GMX_ASM_USEASM-NASM)
 +endif(NOT GMX_OPENMM)
 +
- set(LIBGROMACS_SOURCES ${GMXLIB_SOURCES} ${GMX_SSEKERNEL_ASM_SRC} ${MDLIB_SOURCES})
++list(APPEND LIBGROMACS_SOURCES ${GMXLIB_SOURCES} ${GMX_SSEKERNEL_ASM_SRC} ${MDLIB_SOURCES})
 +
 +# add target that generates version.c every time a make is run
 +# only do this if we generate the version
 +if (USE_VERSION_H)
 +    add_custom_target(gmx_version ALL
 +            COMMAND ${CMAKE_COMMAND} 
 +                -D Git_EXECUTABLE="${Git_EXECUTABLE}"
 +                -D Git_VERSION="${Git_VERSION}"
 +                -D PROJECT_VERSION="${PROJECT_VERSION}"
 +                -D PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}"
 +                -D VERSION_C_CMAKEIN="${CMAKE_CURRENT_SOURCE_DIR}/version.c.cmakein"
 +                -D VERSION_C_OUT="${CMAKE_CURRENT_BINARY_DIR}/version.c"
 +                -P ${CMAKE_SOURCE_DIR}/cmake/gmxGenerateVersionInfo.cmake 
 +            WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/gmxlib 
 +            DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/version.c.cmakein
 +            COMMENT "Generating version information")
 +    list(APPEND LIBGROMACS_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/version.c) # auto-generated
 +    set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/version.c 
 +                                PROPERTIES GENERATED true)
 +endif (USE_VERSION_H)
 +
 +add_library(libgromacs ${LIBGROMACS_SOURCES})
 +if (USE_VERSION_H)
 +    add_dependencies(libgromacs gmx_version)
 +endif (USE_VERSION_H)
 +target_link_libraries(libgromacs
 +                      ${GMX_EXTRA_LIBRARIES} ${FFT_LIBRARIES} ${XML_LIBRARIES}
 +                      ${THREAD_LIB})
 +set_target_properties(libgromacs PROPERTIES
 +                      OUTPUT_NAME "gromacs${GMX_LIBS_SUFFIX}"
 +                      SOVERSION ${SOVERSION}
 +                      INSTALL_NAME_DIR "${LIB_INSTALL_DIR}")
 +
 +install(TARGETS libgromacs DESTINATION ${LIB_INSTALL_DIR} COMPONENT libraries)
 +
 +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libgromacs.pc.cmakein
 +               ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc @ONLY)
 +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc
 +        DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
 +        RENAME "libgromacs${GMX_LIBS_SUFFIX}.pc"
 +        COMPONENT development)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8566977a445d870a35af39b42fe1fe172d22eaa1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,11 @@@
++file(GLOB ERRORREPORTING_SOURCES *.cpp)
++set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${ERRORREPORTING_SOURCES} PARENT_SCOPE)
++
++set(ERRORREPORTING_PUBLIC_HEADERS
++    abstracterrorreporter.h
++    emptyerrorreporter.h
++    errorcontext.h
++    standarderrorreporter.h)
++install(FILES ${ERRORREPORTING_PUBLIC_HEADERS}
++        DESTINATION ${INCL_INSTALL_DIR}/gromacs/errorreporting
++        COMPONENT development)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..46c17560204bc7ca09b822323629cfc61c95c4c6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,8 @@@
++file(GLOB FATALERROR_SOURCES *.cpp)
++set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${FATALERROR_SOURCES} PARENT_SCOPE)
++
++set(FATALERROR_PUBLIC_HEADERS
++    fatalerror.h)
++install(FILES ${FATALERROR_PUBLIC_HEADERS}
++        DESTINATION ${INCL_INSTALL_DIR}/gromacs/fatalerror
++        COMPONENT development)
index 0000000000000000000000000000000000000000,50955f7fc925f5a338291f57177e0d67c8f34216..eef16718110e9eb7ce4419348623200f169e03fa
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,3 +1,16 @@@
++file(GLOB OPTIONS_SOURCES *.cpp)
++set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${OPTIONS_SOURCES} PARENT_SCOPE)
++
++set(OPTIONS_PUBLIC_HEADERS
++    abstractoption.h
++    basicoptions.h
++    optionfiletype.h
++    optionflags.h
++    options.h)
++install(FILES ${OPTIONS_PUBLIC_HEADERS}
++        DESTINATION ${INCL_INSTALL_DIR}/gromacs/options
++        COMPONENT development)
++
+ if (BUILD_TESTING)
+     add_subdirectory(tests)
+ endif (BUILD_TESTING)
index 0000000000000000000000000000000000000000,7b50b5ea3b396b10d36188eec0fc6b744cac5da7..bbdcbbc245a57c1f7ec8d1518148be77251adb31
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,8 +1,8 @@@
 -    target_link_libraries(options-test gromacs gmx ${GTEST_LIBRARIES})
+ IF (GTEST_FOUND)
+     include_directories(${GTEST_INCLUDE_DIR})
+     add_executable(options-test
+                    cmdlineparser.cpp option.cpp optionsassigner.cpp
+                    test_main.cpp)
++    target_link_libraries(options-test libgromacs ${GTEST_LIBRARIES})
+     add_test(OptionsUnitTests options-test)
+ ENDIF (GTEST_FOUND)