In BoostConfig.cmake I had to comment out the following (from a previous post on the CMake users mailing list):
# Clear out the built-in C++ compiler and link flags for each of the
# configurations.
#~ set(CMAKE_CXX_FLAGS_DEBUG "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_CXX_FLAGS_RELEASE "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_CXX_FLAGS_MINSIZEREL "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused by Boost")
#~ set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused by Boost")
Due to the use of CACHE INTERNAL when using add_subdirectory. As I recall this precluded me from being able to set These variables in my calling CMakeLists.txt file. This resulted in getting the error:
1>Compiling...
1>cl : Command line error D8016 : '/O2' and '/RTC1' command-line options are incompatible
1>Build log was saved at "file://c:\projects\NIH2009\source\branches\trunk\build\dvip4-Win64\libs\filesystem\src\boost_filesystem-mt-static-staticrt.dir\Debug\
This is seemingly caused by:
SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1")
SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1")
boost configuration CMake and in Windows-cl.cmake in cmake-2.8/Modules/Platform/Windows-cl-cmake. If I comment out the lines above including RTC1 in Windows-cl.cmake boost_filesystem builds when using add_subdirectory the build is successful.
If I perform CACHE STRING "" FORCE on the following variables and boost_filesystem then builds. Note the removal of /RTC1.
SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od" CACHE STRING "" FORCE )
SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od" CACHE STRING "" FORCE )
SET( CMAKE_CXX_FLAGS_DEBUG /D_DEBUG /MDd /Zi /Ob0 /Od CACHE STRING "" FORCE )
SET( CMAKE_C_FLAGS_DEBUG /D_DEBUG /MDd /Zi /Ob0 /Od CACHE STRING "" FORCE )
Not sure if I should be doing this. It works so I am going to go stick my head in the sand until something else breaks.
Brian