Revision: 70055
          http://sourceforge.net/p/brlcad/code/70055
Author:   starseeker
Date:     2017-08-07 16:26:40 +0000 (Mon, 07 Aug 2017)
Log Message:
-----------
Sigh.  OBJECT libraries + MSVC isn't happy - y2038-obj genrates y2038-obj.lib, 
which is successfully used by y2038 to make a dll.  However, y2038 doesn't in 
turn make a y2038.lib file, which means libbu can't link successfully.

Modified Paths:
--------------
    brlcad/trunk/CMakeLists.txt
    brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake

Modified: brlcad/trunk/CMakeLists.txt
===================================================================
--- brlcad/trunk/CMakeLists.txt 2017-08-07 15:37:54 UTC (rev 70054)
+++ brlcad/trunk/CMakeLists.txt 2017-08-07 16:26:40 UTC (rev 70055)
@@ -126,8 +126,8 @@
   set(CPP_DLL_DEFINES 1)
 endif(MSVC)
 
-# Use OBJECT libraries
-option(USE_OBJECT_LIBS "Use OBJECT libraries" ON)
+# Use OBJECT libraries when we can
+cmake_dependent_option(USE_OBJECT_LIBS "Use OBJECT libraries" ON "NOT 
CPP_DLL_DEFINES" OFF)
 mark_as_advanced(USE_OBJECT_LIBS)
 
 #---------------------------------------------------------------------

Modified: brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake
===================================================================
--- brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake        2017-08-07 15:37:54 UTC 
(rev 70054)
+++ brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake        2017-08-07 16:26:40 UTC 
(rev 70055)
@@ -379,8 +379,7 @@
   SET_FLAGS_AND_DEFINITIONS("${srcslist};${L_SHARED_SRCS};${L_STATIC_SRCS}" 
TARGET ${libname} CFLAGS "${L_C_FLAGS}" CXXFLAGS "${L_CXX_FLAGS}" DEFINES 
"${L_DEFINES}")
 
   # Local copy of srcslist in case manipulation is needed
-  set(lsrcslist-shared ${srcslist} ${L_SHARED_SRCS})
-  set(lsrcslist-static ${srcslist} ${L_STATIC_SRCS})
+  set(lsrcslist ${srcslist})
 
   # If we're going to have a specified subfolder, prepare the appropriate 
string:
   if(L_FOLDER)
@@ -389,23 +388,13 @@
 
   # If we need it, set up the OBJECT library build
   if(USE_OBJECT_LIBS)
-    add_library(${libname}-obj OBJECT ${lsrcslist-shared})
-    set(lsrcslist-shared $<TARGET_OBJECTS:${libname}-obj>)
+    add_library(${libname}-obj OBJECT ${lsrcslist})
+    set(lsrcslist $<TARGET_OBJECTS:${libname}-obj>)
     set_target_properties(${libname}-obj PROPERTIES FOLDER "BRL-CAD OBJECT 
Libraries${SUBFOLDER}")
-    if(CPP_DLL_DEFINES)
-      # Static Visual C++ builds shouldn't have the dll import/export logic 
set,so in that case
-      # we need to build separate objects
-      add_library(${libname}-obj-static OBJECT ${lsrcslist-static})
-      set(lsrcslist-static $<TARGET_OBJECTS:${libname}-obj-static>)
-      target_compile_definitions(${libname}-obj-static PRIVATE STATIC_BUILD)
-      set_target_properties(${libname}-obj-static PROPERTIES FOLDER "BRL-CAD 
OBJECT Libraries${SUBFOLDER}")
-    else(CPP_DLL_DEFINES)
-      set(lsrcslist-static $<TARGET_OBJECTS:${libname}-obj>)
-    endif(CPP_DLL_DEFINES)
   endif(USE_OBJECT_LIBS)
 
   if(BUILD_SHARED_LIBS)
-    add_library(${libname} SHARED ${lsrcslist-shared})
+    add_library(${libname} SHARED ${lsrcslist} ${L_SHARED_SRCS})
     string(REPLACE "lib" "" LOWERCORE "${libname}")
     string(TOUPPER ${LOWERCORE} UPPER_CORE)
     if(CPP_DLL_DEFINES)
@@ -414,10 +403,12 @@
     endif(CPP_DLL_DEFINES)
   endif(BUILD_SHARED_LIBS)
   if(BUILD_STATIC_LIBS)
-    add_library(${libname}-static STATIC ${lsrcslist-static})
-    if(USE_OBJECT_LIBS AND CPP_DLL_DEFINES)
+    add_library(${libname}-static STATIC ${lsrcslist} ${L_STATIC_SRCS})
+    # No DLL import/export machinery for static compilation with Visual C++,
+    # so define our short-circuiting definition for the headers
+    if(CPP_DLL_DEFINES)
       target_compile_definitions(${libname}-static PRIVATE STATIC_BUILD)
-    endif(USE_OBJECT_LIBS AND CPP_DLL_DEFINES)
+    endif(CPP_DLL_DEFINES)
   endif(BUILD_STATIC_LIBS)
 
   # Make sure we don't end up with outputs named liblib...

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to