]> git.mxchange.org Git - simgear.git/commitdiff
Intermediate static libs have issues.
authorJames Turner <zakalawe@mac.com>
Thu, 19 Sep 2013 20:42:28 +0000 (21:42 +0100)
committerJames Turner <zakalawe@mac.com>
Thu, 19 Sep 2013 20:42:28 +0000 (21:42 +0100)
Switch back to including the bundled expat sources directly in the
targets, since transitive linking of static libs is very awkward.
Makes static build happy again (let's see what else breaks)

3rdparty/expat/CMakeLists.txt
CMakeLists.txt
simgear/CMakeLists.txt

index ed5bebeef89626b26fcb8d2492bdbb989627df5f..550a52c98a8cb32b7305b7e5bc1f35c9066ff9d9 100644 (file)
@@ -1,11 +1,9 @@
 
-
 configure_file (
     "${PROJECT_SOURCE_DIR}/3rdparty/expat/expat_config_cmake.in"
     "${PROJECT_BINARY_DIR}/3rdparty/expat/expat_config.h"
 )
 
-
 set(expat_sources 
        asciitab.h
         hashtable.h
@@ -28,15 +26,8 @@ set(expat_sources
         sg_expat_external.h 
        )
 
-
-# this code will be linked into SimGearCore shared object, so it 
-# must be compiled with -fPIC too
-
-
-if(SIMGEAR_SHARED AND UNIX)
-       set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
-       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
-endif()
-
-add_library(local_expat STATIC ${expat_sources})
-
+foreach(s ${expat_sources})
+       set_property(GLOBAL
+               APPEND PROPERTY LOCAL_EXPAT_SOURCES 
+        "${CMAKE_CURRENT_SOURCE_DIR}/${s}")
+endforeach()
index a0112491c57f61aad641e36cb1a7527b775a6d2b..e277761a2d9760853c5666b2cd108a19de92a485 100644 (file)
@@ -232,9 +232,8 @@ else()
     message(STATUS "Using built-in expat code")
     add_definitions(-DHAVE_EXPAT_CONFIG_H)
     set(EXPAT_INCLUDE_DIRS 
-       ${PROJECT_SOURCE_DIR}/3rdparty/expat 
-       ${PROJECT_BINARY_DIR}/3rdparty/expat)
-    set(EXPAT_LIBRARIES local_expat)
+           ${PROJECT_SOURCE_DIR}/3rdparty/expat 
+           ${PROJECT_BINARY_DIR}/3rdparty/expat)
 endif(SYSTEM_EXPAT)
 
 include_directories(${EXPAT_INCLUDE_DIRS})
index 096d01800b7ccf3b11e9b22671407db052d82257..e220d6638baea0a6a3f0cf2222df7059834724fe 100644 (file)
@@ -45,6 +45,7 @@ install (FILES ${HEADERS}  DESTINATION include/simgear/)
 get_property(coreSources GLOBAL PROPERTY CORE_SOURCES)
 get_property(sceneSources GLOBAL PROPERTY SCENE_SOURCES)
 get_property(publicHeaders GLOBAL PROPERTY PUBLIC_HEADERS)
+get_property(localExpatSources GLOBAL PROPERTY LOCAL_EXPAT_SOURCES)
 
 if(LIBSVN_FOUND)
        add_definitions(${APR_CFLAGS})
@@ -53,7 +54,7 @@ endif()
 
 if(SIMGEAR_SHARED)
     message(STATUS "Library building mode: SHARED LIBRARIES")
-    add_library(SimGearCore SHARED ${coreSources})
+    add_library(SimGearCore SHARED ${coreSources} ${localExpatSources})
 
   # set_property(TARGET SimGearCore PROPERTY FRAMEWORK 1)
   #  message(STATUS "public header: ${publicHeaders}")
@@ -114,7 +115,7 @@ else()
                source_group("${name}\\Headers" FILES ${g2})
        endforeach()
 
-    add_library(SimGearCore STATIC ${coreSources})
+    add_library(SimGearCore STATIC ${coreSources} ${localExpatSources})
     install(TARGETS SimGearCore ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
     
     if(NOT SIMGEAR_HEADLESS)