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

Reply via email to