Revision: 58833 http://sourceforge.net/p/brlcad/code/58833 Author: starseeker Date: 2013-12-05 21:28:54 +0000 (Thu, 05 Dec 2013) Log Message: ----------- Make the ENABLE_ALL_CXX_COMPILE flag work for all BRL-CAD libraries and executables (but not src/other)
Modified Paths: -------------- brlcad/trunk/configure brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake brlcad/trunk/src/librt/CMakeLists.txt Modified: brlcad/trunk/configure =================================================================== --- brlcad/trunk/configure 2013-12-05 20:49:57 UTC (rev 58832) +++ brlcad/trunk/configure 2013-12-05 21:28:54 UTC (rev 58833) @@ -66,6 +66,10 @@ shift;; --disable-strict-compile-flags) options="$options -DBRLCAD_ENABLE_STRICT=OFF"; shift;; + --enable-all-cxx) options="$options -DENABLE_ALL_CXX_COMPILE=ON"; + shift;; + --disable-all-cxx) options="$options -DENABLE_ALL_CXX_COMPILE=OFF"; + shift;; --enable-posix) options="$options -DENABLE_POSIX_COMPLIANCE=ON"; shift;; --disable-posix) options="$options -DENABLE_POSIX_COMPLIANCE=OFF"; Modified: brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake =================================================================== --- brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake 2013-12-05 20:49:57 UTC (rev 58832) +++ brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake 2013-12-05 21:28:54 UTC (rev 58833) @@ -89,6 +89,19 @@ endif(CPP_DLL_DEFINES) endmacro(GET_TARGET_DLL_DEFINES) +# For BRL-CAD targets, use CXX as the language if the user requests it +macro(SET_CXX_LANG SRC_FILES) + if(ENABLE_ALL_CXX_COMPILE) + foreach(srcfile ${SRC_FILES}) + if(NOT ${CMAKE_CURRENT_SOURCE_DIR}/${srcfile} MATCHES "src/other") + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${srcfile}) + set_source_files_properties(${srcfile} PROPERTIES LANGUAGE CXX) + endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${srcfile}) + endif(NOT ${CMAKE_CURRENT_SOURCE_DIR}/${srcfile} MATCHES "src/other") + endforeach(srcfile ${SRC_FILES}) + endif(ENABLE_ALL_CXX_COMPILE) +endmacro(SET_CXX_LANG SRC_FILES) + # Take a target definition and find out what compilation flags its libraries # are using macro(GET_TARGET_FLAGS targetname target_libs) @@ -197,6 +210,9 @@ # Check at comple time the standard BRL-CAD style rules VALIDATE_STYLE("${srcslist}") + # Go all C++ if the settings request it + SET_CXX_LANG("${srcslist}") + # Call standard CMake commands add_executable(${execname} ${srcslist}) target_link_libraries(${execname} ${libslist}) @@ -277,6 +293,9 @@ # statement will cover both automatically macro(BRLCAD_ADDLIB libname srcslist libslist) + # Go all C++ if the settings request it + SET_CXX_LANG("${srcslist}") + # Add ${libname} to the list of BRL-CAD libraries list(APPEND BRLCAD_LIBS ${libname}) list(REMOVE_DUPLICATES BRLCAD_LIBS) Modified: brlcad/trunk/src/librt/CMakeLists.txt =================================================================== --- brlcad/trunk/src/librt/CMakeLists.txt 2013-12-05 20:49:57 UTC (rev 58832) +++ brlcad/trunk/src/librt/CMakeLists.txt 2013-12-05 21:28:54 UTC (rev 58833) @@ -295,11 +295,6 @@ set(LIBRT_SOURCES ${LIBRT_SOURCES} timer42.c) endif(MSVC) -# choose to use C++ compiler on all files -if(ENABLE_ALL_CXX_COMPILE) - set_source_files_properties(${LIBRT_SOURCES} PROPERTIES LANGUAGE CXX) -endif() - BRLCAD_ADDLIB(librt "${LIBRT_SOURCES}" "${LIBGDIAM_LIBRARY};${LIBVDS_LIBRARY};libbn;libbu;${OPENNURBS_LIBRARY};${P2T_LIBRARY};libbrep;${REGEX_LIBRARY};${ZLIB_LIBRARY};${WINSOCK_LIB};${RPCRT_LIB};${STDCXX_LIBRARIES}" NO_STRICT_CXX) SET_TARGET_PROPERTIES(librt PROPERTIES VERSION 20.0.1 SOVERSION 20) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk _______________________________________________ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits