Я закончил тем, что сделал следующее:
- Храните 32 сборки lib / dll в отдельной папке / lib32
- Храните 64 сборки lib / dll в отдельной папке / lib64
Оба предпочтительно находятся в пути поиска, который Boost уже проверяет, например stage или установка папка.
Затем я добавил этот блок сразу после того, как пути поиска собраны под заголовком (файл для редактирования FindBoost.cmake находится в папке share / cmake-3.1 / Modules / в ваша установочная папка CMake)
Начните поиск буст-библиотек
...
если (Boost_LIBRARY_DIR)
...
ENDIF ()
#generate 32 and 64 bit paths
if(WIN32)
if(CMAKE_CL_64)
#message("Finding BOOST on windows platform (64 bit)")
SET(BOOST_libdir_suffix_gen "64")
else()
#message("Finding BOOST on windows platform (32 bit)")
SET(BOOST_libdir_suffix_gen "32")
endif()
list(APPEND _boost_LIBRARY_SEARCH_DIRS_PLATFORMS "")
foreach(SEARCH_DIR_NOPLATFORM ${_boost_LIBRARY_SEARCH_DIRS})
list(APPEND _boost_LIBRARY_SEARCH_DIRS_PLATFORMS ${SEARCH_DIR_NOPLATFORM}${BOOST_libdir_suffix_gen})
endforeach()
foreach(SEARCH_DIR_PLATFORM ${_boost_LIBRARY_SEARCH_DIRS_PLATFORMS})
list (APPEND _boost_LIBRARY_SEARCH_DIRS ${SEARCH_DIR_PLATFORM})
endforeach()
else()
# no generation required (?)
endif()
Он снова добавит все существующие каталоги lib к пути расширенного поиска для библиотек, дополненных тегом расширения 64 или 32 бита. При этом выбираются правильные целевые библиотеки для компоновки, и вы можете безопасно восстановить любую другую зависимую библиотеку cmake (например, CGAL) для целевой сборки 32 или 64 без сброса пути зависимостей наддува.