From: Teemu Murtola Date: Tue, 1 Jul 2014 04:17:21 +0000 (+0300) Subject: Adjust include directory order for some corner cases X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=d2221de65b811926eb3fe7d6c26b5c0f714b0560;p=alexxy%2Fgromacs.git Adjust include directory order for some corner cases Always add headers found from the source/build tree to the beginning of the list of include paths, such that they are preferred over those potentially found in other non-system directories. Fixes #1539 Change-Id: Id79634073fea5b10f250128db8ab08019a7f9e21 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 583a9a5c7b..bc4ef86bfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -583,14 +583,14 @@ endif() ######################################################################## add_definitions( -DHAVE_CONFIG_H ) -include_directories(${CMAKE_SOURCE_DIR}/src) -include_directories(${CMAKE_SOURCE_DIR}/src/external/thread_mpi/include) +include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src) +include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/include) # Required for config.h, maybe should only be set in src/CMakeLists.txt -include_directories(${CMAKE_BINARY_DIR}/src) +include_directories(BEFORE ${CMAKE_BINARY_DIR}/src) # Required for gmx_header_config_gen.h to be found before installation -include_directories(${CMAKE_BINARY_DIR}/src/gromacs/utility) +include_directories(BEFORE ${CMAKE_BINARY_DIR}/src/gromacs/utility) # Required for now to make old code compile -include_directories(${CMAKE_SOURCE_DIR}/src/gromacs/legacyheaders) +include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/gromacs/legacyheaders) include(gmxTestInlineASM) gmx_test_inline_asm_gcc_x86(GMX_X86_GCC_INLINE_ASM) @@ -845,7 +845,7 @@ if(GMX_EXTERNAL_BOOST) include_directories(${Boost_INCLUDE_DIRS}) set(PKG_CFLAGS "${PKG_CFLAGS} -I${Boost_INCLUDE_DIRS}") else() - include_directories(${CMAKE_SOURCE_DIR}/src/external/boost) + include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/external/boost) # typeid not supported for minimal internal version # (would add significant amount of code) add_definitions(-DBOOST_NO_TYPEID) diff --git a/cmake/gmxManageFFTLibraries.cmake b/cmake/gmxManageFFTLibraries.cmake index 4bbfc2df4e..104576d4b3 100644 --- a/cmake/gmxManageFFTLibraries.cmake +++ b/cmake/gmxManageFFTLibraries.cmake @@ -77,7 +77,11 @@ if(${GMX_FFT_LIBRARY} STREQUAL "FFTW3") endif() set(PKG_FFT "${${FFTW}_PKG}") - include_directories(${${FFTW}_INCLUDE_DIRS}) + if (GMX_BUILD_OWN_FFTW) + include_directories(BEFORE ${${FFTW}_INCLUDE_DIRS}) + else() + include_directories(${${FFTW}_INCLUDE_DIRS}) + endif() set(FFT_LIBRARIES ${${FFTW}_LIBRARIES}) set(GMX_FFT_FFTW3 1) diff --git a/src/external/gmock-1.7.0/CMakeLists.txt b/src/external/gmock-1.7.0/CMakeLists.txt index ae98ac37ed..3cb202bfd0 100644 --- a/src/external/gmock-1.7.0/CMakeLists.txt +++ b/src/external/gmock-1.7.0/CMakeLists.txt @@ -55,10 +55,10 @@ set(GMOCK_SOURCES ${GMOCK_DIR}/src/gmock-all.cc) set(GTEST_INCLUDE_DIRS ${GTEST_DIR}/include) set(GMOCK_INCLUDE_DIRS ${GMOCK_DIR}/include ${GTEST_INCLUDE_DIRS}) -include_directories(${GTEST_INCLUDE_DIRS}) -include_directories(${GTEST_DIR}) -include_directories(${GMOCK_INCLUDE_DIRS}) -include_directories(${GMOCK_DIR}) +include_directories(BEFORE ${GTEST_INCLUDE_DIRS}) +include_directories(BEFORE ${GTEST_DIR}) +include_directories(BEFORE ${GMOCK_INCLUDE_DIRS}) +include_directories(BEFORE ${GMOCK_DIR}) add_library(gmock STATIC ${GMOCK_SOURCES} ${GTEST_SOURCES}) set_property(TARGET gmock APPEND PROPERTY COMPILE_DEFINITIONS "${GMOCK_COMPILE_DEFINITIONS}") diff --git a/src/external/tng_io/BuildTNG.cmake b/src/external/tng_io/BuildTNG.cmake index f4f2caf1d4..6ccc50e78d 100644 --- a/src/external/tng_io/BuildTNG.cmake +++ b/src/external/tng_io/BuildTNG.cmake @@ -23,8 +23,8 @@ include(CheckIncludeFile) check_include_file(inttypes.h TNG_HAVE_INTTYPES_H) macro(TNG_GET_SOURCE_LIST TNG_SOURCELIST TNG_COMPILEDEFS) - include_directories(${TNG_ROOT_SOURCE_DIR}/include) - include_directories(${TNG_ROOT_BINARY_DIR}/include) + include_directories(BEFORE ${TNG_ROOT_SOURCE_DIR}/include) + include_directories(BEFORE ${TNG_ROOT_BINARY_DIR}/include) set(_tng_compression_sources bwlzh.c bwt.c coder.c dict.c fixpoint.c huffman.c huffmem.c lz77.c merge_sort.c mtf.c rle.c tng_compress.c vals16.c warnmalloc.c widemuldiv.c xtc2.c xtc3.c) set(_tng_io_sources tng_io.c md5.c) set(${TNG_SOURCELIST}) diff --git a/src/gromacs/CMakeLists.txt b/src/gromacs/CMakeLists.txt index 2045cebcc6..25da7de0e4 100644 --- a/src/gromacs/CMakeLists.txt +++ b/src/gromacs/CMakeLists.txt @@ -75,7 +75,7 @@ if(GMX_USE_TNG) endif() else() # We still need to get tng/tng_io_fwd.h from somewhere! - include_directories(${CMAKE_SOURCE_DIR}/src/external/tng_io/include) + include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/external/tng_io/include) endif() add_subdirectory(gmxlib) diff --git a/src/gromacs/gmxlib/CMakeLists.txt b/src/gromacs/gmxlib/CMakeLists.txt index 204fb6a66a..4710367b35 100644 --- a/src/gromacs/gmxlib/CMakeLists.txt +++ b/src/gromacs/gmxlib/CMakeLists.txt @@ -32,7 +32,7 @@ # To help us fund GROMACS development, we humbly ask that you cite # the research papers on the package. Check out http://www.gromacs.org. -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}) add_subdirectory(nonbonded) diff --git a/src/testutils/CMakeLists.txt b/src/testutils/CMakeLists.txt index 6b84861300..8dd207ad0e 100644 --- a/src/testutils/CMakeLists.txt +++ b/src/testutils/CMakeLists.txt @@ -32,7 +32,7 @@ # To help us fund GROMACS development, we humbly ask that you cite # the research papers on the package. Check out http://www.gromacs.org. -include_directories(${GMOCK_INCLUDE_DIRS}) +include_directories(BEFORE ${GMOCK_INCLUDE_DIRS}) include_directories(${LIBXML2_INCLUDE_DIR}) file(GLOB TESTUTILS_SOURCES *.cpp) diff --git a/src/testutils/TestMacros.cmake b/src/testutils/TestMacros.cmake index 1e0b951e21..3c8425962e 100644 --- a/src/testutils/TestMacros.cmake +++ b/src/testutils/TestMacros.cmake @@ -34,7 +34,7 @@ function (gmx_add_unit_test_object_library NAME) if (GMX_BUILD_UNITTESTS AND BUILD_TESTING) - include_directories(${GMOCK_INCLUDE_DIRS}) + include_directories(BEFORE ${GMOCK_INCLUDE_DIRS}) add_library(${NAME} OBJECT ${ARGN}) set_property(TARGET ${NAME} APPEND PROPERTY COMPILE_DEFINITIONS "${GMOCK_COMPILE_DEFINITIONS}") endif() @@ -42,7 +42,7 @@ endfunction () function (gmx_build_unit_test NAME EXENAME) if (GMX_BUILD_UNITTESTS AND BUILD_TESTING) - include_directories(${GMOCK_INCLUDE_DIRS}) + include_directories(BEFORE ${GMOCK_INCLUDE_DIRS}) add_executable(${EXENAME} ${ARGN} ${TESTUTILS_DIR}/unittest_main.cpp) set_property(TARGET ${EXENAME} APPEND PROPERTY COMPILE_DEFINITIONS "${GMOCK_COMPILE_DEFINITIONS}") target_link_libraries(${EXENAME} libgromacs ${TESTUTILS_LIBS} ${GMOCK_LIBRARIES} ${GMX_EXE_LINKER_FLAGS})