From 4027486dbbe18c644eb679a49259ce201a5f9f59 Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Fri, 18 Oct 2013 17:38:31 +0100 Subject: storm-1831 Incorporating Oz's changes to update libxml on linux to libxml2 --- indra/cmake/GStreamer010Plugin.cmake | 4 ++-- indra/cmake/LLPrimitive.cmake | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake index d2d0699bcd..d1c99d5409 100755 --- a/indra/cmake/GStreamer010Plugin.cmake +++ b/indra/cmake/GStreamer010Plugin.cmake @@ -8,8 +8,8 @@ if (STANDALONE) pkg_check_modules(GSTREAMER010_PLUGINS_BASE REQUIRED gstreamer-plugins-base-0.10) elseif (LINUX) use_prebuilt_binary(gstreamer) - # possible libxml should have its own .cmake file instead - use_prebuilt_binary(libxml) + # possible libxml2 should have its own .cmake file instead + use_prebuilt_binary(libxml2) set(GSTREAMER010_FOUND ON FORCE BOOL) set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL) set(GSTREAMER010_INCLUDE_DIRS diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 0d87ff579a..67c2115237 100755 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -6,21 +6,30 @@ include(Boost) use_prebuilt_binary(colladadom) use_prebuilt_binary(pcre) -use_prebuilt_binary(libxml) set(LLPRIMITIVE_INCLUDE_DIRS ${LIBS_OPEN_DIR}/llprimitive ) if (WINDOWS) - set(LLPRIMITIVE_LIBRARIES + set(LLPRIMITIVE_LIBRARIES debug llprimitive optimized llprimitive debug libcollada14dom22-d optimized libcollada14dom22 ${BOOST_SYSTEM_LIBRARIES} ) +elseif (LINUX) + use_prebuilt_binary(libxml2) + set(LLPRIMITIVE_LIBRARIES + llprimitive + collada14dom + minizip + xml2 + pcrecpp + pcre + ) else (WINDOWS) - set(LLPRIMITIVE_LIBRARIES + set(LLPRIMITIVE_LIBRARIES llprimitive collada14dom minizip -- cgit v1.2.3 From 460d01befb6bfc3bc956589065362118f52610c0 Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Fri, 1 Nov 2013 23:32:44 +0000 Subject: Update build plumbing with tier 2, 3 and 4 libraries --- indra/cmake/Copy3rdPartyLibs.cmake | 2 +- indra/cmake/PNG.cmake | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 44c2d3ac27..308e378db0 100755 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -286,7 +286,7 @@ elseif(LINUX) libuuid.so.16 libuuid.so.16.0.22 libssl.so.1.0.0 - libfontconfig.so.1.4.4 + libfontconfig.so.1.8.0 ) if (USE_TCMALLOC) diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake index 913c575672..d9afe772ae 100755 --- a/indra/cmake/PNG.cmake +++ b/indra/cmake/PNG.cmake @@ -9,13 +9,13 @@ if (STANDALONE) else (STANDALONE) use_prebuilt_binary(libpng) if (WINDOWS) - set(PNG_LIBRARIES libpng15) - set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15) + set(PNG_LIBRARIES libpng16) + set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16) elseif(DARWIN) - set(PNG_LIBRARIES png15) - set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15) + set(PNG_LIBRARIES png16) + set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16) else() - set(PNG_LIBRARIES png15) - set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15) + set(PNG_LIBRARIES png16) + set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16) endif() endif (STANDALONE) -- cgit v1.2.3 From 776aadf4ef65681084268c3866058172c89b4259 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Wed, 19 Mar 2014 17:30:07 -0400 Subject: OPEN-199: replace the confusing STANDALONE switch with USESYSTEMLIBS --- indra/cmake/00-Common.cmake | 10 +++++----- indra/cmake/APR.cmake | 6 +++--- indra/cmake/Audio.cmake | 6 +++--- indra/cmake/BerkeleyDB.cmake | 6 +++--- indra/cmake/Boost.cmake | 6 +++--- indra/cmake/CARes.cmake | 6 +++--- indra/cmake/CURL.cmake | 6 +++--- indra/cmake/Copy3rdPartyLibs.cmake | 4 ++-- indra/cmake/DBusGlib.cmake | 4 ++-- indra/cmake/EXPAT.cmake | 6 +++--- indra/cmake/ExamplePlugin.cmake | 6 +++--- indra/cmake/FMODEX.cmake | 8 ++++---- indra/cmake/FindJsonCpp.cmake | 4 ++-- indra/cmake/FreeType.cmake | 6 +++--- indra/cmake/GLEXT.cmake | 4 ++-- indra/cmake/GLH.cmake | 6 +++--- indra/cmake/GLOD.cmake | 4 ++-- indra/cmake/GStreamer010Plugin.cmake | 4 ++-- indra/cmake/Glui.cmake | 6 +++--- indra/cmake/GoogleBreakpad.cmake | 6 +++--- indra/cmake/GooglePerfTools.cmake | 6 +++--- indra/cmake/Hunspell.cmake | 6 +++--- indra/cmake/JPEG.cmake | 6 +++--- indra/cmake/JsonCpp.cmake | 6 +++--- indra/cmake/LLAddBuildTest.cmake | 10 +++++----- indra/cmake/LLWindow.cmake | 6 +++--- indra/cmake/NDOF.cmake | 6 +++--- indra/cmake/OPENAL.cmake | 6 +++--- indra/cmake/OpenJPEG.cmake | 6 +++--- indra/cmake/OpenSSL.cmake | 6 +++--- indra/cmake/PNG.cmake | 6 +++--- indra/cmake/Prebuilt.cmake | 2 +- indra/cmake/PulseAudio.cmake | 4 ++-- indra/cmake/Tut.cmake | 4 ++-- indra/cmake/UI.cmake | 6 +++--- indra/cmake/Variables.cmake | 2 +- indra/cmake/ViewerMiscLibs.cmake | 4 ++-- indra/cmake/WebKitLibPlugin.cmake | 6 +++--- indra/cmake/XmlRpcEpi.cmake | 6 +++--- indra/cmake/ZLIB.cmake | 6 +++--- 40 files changed, 112 insertions(+), 112 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 87484f4ae3..69173c38a2 100755 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -173,12 +173,12 @@ if (LINUX) endif (WORD_SIZE EQUAL 32) add_definitions(-mfpmath=sse) #add_definitions(-ftree-vectorize) # THIS CRASHES GCC 3.1-3.2 - if (NOT STANDALONE) + if (NOT USESYSTEMLIBS) # this stops us requiring a really recent glibc at runtime add_definitions(-fno-stack-protector) # linking can be very memory-hungry, especially the final viewer link set(CMAKE_CXX_LINK_FLAGS "-Wl,--no-keep-memory") - endif (NOT STANDALONE) + endif (NOT USESYSTEMLIBS) set(CMAKE_CXX_FLAGS_DEBUG "-fno-inline ${CMAKE_CXX_FLAGS_DEBUG}") set(CMAKE_CXX_FLAGS_RELEASE "-O2 ${CMAKE_CXX_FLAGS_RELEASE}") @@ -225,14 +225,14 @@ if (LINUX OR DARWIN) endif (LINUX OR DARWIN) -if (STANDALONE) +if (USESYSTEMLIBS) add_definitions(-DLL_STANDALONE=1) if (LINUX AND ${ARCH} STREQUAL "i686") add_definitions(-march=pentiumpro) endif (LINUX AND ${ARCH} STREQUAL "i686") -else (STANDALONE) +else (USESYSTEMLIBS) set(${ARCH}_linux_INCLUDES ELFIO atk-1.0 @@ -241,6 +241,6 @@ else (STANDALONE) gtk-2.0 pango-1.0 ) -endif (STANDALONE) +endif (USESYSTEMLIBS) endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake index a87027f5f6..1a01671002 100755 --- a/indra/cmake/APR.cmake +++ b/indra/cmake/APR.cmake @@ -8,9 +8,9 @@ set(APR_FIND_REQUIRED ON) set(APRUTIL_FIND_QUIETLY ON) set(APRUTIL_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindAPR) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(apr_suite) if (WINDOWS) if (LLCOMMON_LINK_SHARED) @@ -52,4 +52,4 @@ else (STANDALONE) list(APPEND APRUTIL_LIBRARIES ${DB_LIBRARIES} uuid) list(APPEND APRUTIL_LIBRARIES ${DB_LIBRARIES} rt) endif (LINUX) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/Audio.cmake b/indra/cmake/Audio.cmake index d23bc2f9c6..876b7f82a8 100755 --- a/indra/cmake/Audio.cmake +++ b/indra/cmake/Audio.cmake @@ -1,13 +1,13 @@ # -*- cmake -*- include(Prebuilt) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindPkgConfig) pkg_check_modules(OGG REQUIRED ogg) pkg_check_modules(VORBIS REQUIRED vorbis) pkg_check_modules(VORBISENC REQUIRED vorbisenc) pkg_check_modules(VORBISFILE REQUIRED vorbisfile) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(ogg-vorbis) set(VORBIS_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) set(VORBISENC_INCLUDE_DIRS ${VORBIS_INCLUDE_DIRS}) @@ -32,7 +32,7 @@ else (STANDALONE) set(VORBISENC_LIBRARIES vorbisenc) set(VORBISFILE_LIBRARIES vorbisfile) endif (WINDOWS) -endif (STANDALONE) +endif (USESYSTEMLIBS) link_directories( ${VORBIS_LIBRARY_DIRS} diff --git a/indra/cmake/BerkeleyDB.cmake b/indra/cmake/BerkeleyDB.cmake index 57b53f46ff..5f6b644a15 100755 --- a/indra/cmake/BerkeleyDB.cmake +++ b/indra/cmake/BerkeleyDB.cmake @@ -3,9 +3,9 @@ set(DB_FIND_QUIETLY ON) set(DB_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindBerkeleyDB) -else (STANDALONE) +else (USESYSTEMLIBS) if (LINUX) # Need to add dependency pthread explicitely to support ld.gold. use_prebuilt_binary(db) @@ -14,4 +14,4 @@ else (STANDALONE) set(DB_LIBRARIES db-4.2) endif (LINUX) set(DB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index cff762e1f0..50ac27d402 100755 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -4,7 +4,7 @@ include(Prebuilt) set(Boost_FIND_QUIETLY ON) set(Boost_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindBoost) set(BOOST_CONTEXT_LIBRARY boost_context-mt) @@ -14,7 +14,7 @@ if (STANDALONE) set(BOOST_SIGNALS_LIBRARY boost_signals-mt) set(BOOST_SYSTEM_LIBRARY boost_system-mt) set(BOOST_THREAD_LIBRARY boost_thread-mt) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(boost) set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) set(BOOST_VERSION "1.52") @@ -111,4 +111,4 @@ else (STANDALONE) optimized boost_thread-mt debug boost_thread-mt-d) endif (WINDOWS) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/CARes.cmake b/indra/cmake/CARes.cmake index b0dac5b12f..baa55aa49d 100755 --- a/indra/cmake/CARes.cmake +++ b/indra/cmake/CARes.cmake @@ -5,9 +5,9 @@ include(Prebuilt) set(CARES_FIND_QUIETLY ON) set(CARES_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindCARes) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(ares) add_definitions("-DCARES_STATICLIB") if (WINDOWS) @@ -18,4 +18,4 @@ else (STANDALONE) set(CARES_LIBRARIES cares) endif (WINDOWS) set(CARES_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/ares) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake index 9aba08e573..04afae594d 100755 --- a/indra/cmake/CURL.cmake +++ b/indra/cmake/CURL.cmake @@ -4,9 +4,9 @@ include(Prebuilt) set(CURL_FIND_QUIETLY ON) set(CURL_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindCURL) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(curl) if (WINDOWS) set(CURL_LIBRARIES @@ -16,4 +16,4 @@ else (STANDALONE) set(CURL_LIBRARIES libcurl.a) endif (WINDOWS) set(CURL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 44c2d3ac27..160f18c99b 100755 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -372,9 +372,9 @@ copy_if_different( ) set(third_party_targets ${third_party_targets} ${out_targets}) -if(NOT STANDALONE) +if(NOT USESYSTEMLIBS) add_custom_target( stage_third_party_libs ALL DEPENDS ${third_party_targets} ) -endif(NOT STANDALONE) +endif(NOT USESYSTEMLIBS) diff --git a/indra/cmake/DBusGlib.cmake b/indra/cmake/DBusGlib.cmake index 83c08d3350..d148a35a5b 100755 --- a/indra/cmake/DBusGlib.cmake +++ b/indra/cmake/DBusGlib.cmake @@ -1,7 +1,7 @@ # -*- cmake -*- include(Prebuilt) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindPkgConfig) pkg_check_modules(DBUSGLIB REQUIRED dbus-glib-1) @@ -18,7 +18,7 @@ elseif (LINUX) gobject-2.0 glib-2.0 ) -endif (STANDALONE) +endif (USESYSTEMLIBS) if (DBUSGLIB_FOUND) set(DBUSGLIB ON CACHE BOOL "Build with dbus-glib message bus support.") diff --git a/indra/cmake/EXPAT.cmake b/indra/cmake/EXPAT.cmake index acb15dc623..c1155531ff 100755 --- a/indra/cmake/EXPAT.cmake +++ b/indra/cmake/EXPAT.cmake @@ -4,9 +4,9 @@ include(Prebuilt) set(EXPAT_FIND_QUIETLY ON) set(EXPAT_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindEXPAT) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(expat) if (WINDOWS) set(EXPAT_LIBRARIES libexpatMT) @@ -14,4 +14,4 @@ else (STANDALONE) set(EXPAT_LIBRARIES expat) endif (WINDOWS) set(EXPAT_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/ExamplePlugin.cmake b/indra/cmake/ExamplePlugin.cmake index 599787ad21..5d826c1f66 100755 --- a/indra/cmake/ExamplePlugin.cmake +++ b/indra/cmake/ExamplePlugin.cmake @@ -2,13 +2,13 @@ include(Linking) include(Prebuilt) -if (STANDALONE) +if (USESYSTEMLIBS) set(EXAMPLEPLUGIN OFF CACHE BOOL "EXAMPLEPLUGIN support for the llplugin/llmedia test apps.") -else (STANDALONE) +else (USESYSTEMLIBS) set(EXAMPLEPLUGIN ON CACHE BOOL "EXAMPLEPLUGIN support for the llplugin/llmedia test apps.") -endif (STANDALONE) +endif (USESYSTEMLIBS) if (WINDOWS) elseif (DARWIN) diff --git a/indra/cmake/FMODEX.cmake b/indra/cmake/FMODEX.cmake index 65bc1cabeb..720933d1b7 100644 --- a/indra/cmake/FMODEX.cmake +++ b/indra/cmake/FMODEX.cmake @@ -4,17 +4,17 @@ # When building using proprietary binaries though (i.e. having access to LL private servers), # we always build with FMODEX. # Open source devs should use the -DFMODEX:BOOL=ON then if they want to build with FMOD, whether -# they are using STANDALONE or not. +# they are using USESYSTEMLIBS or not. if (INSTALL_PROPRIETARY) set(FMODEX ON CACHE BOOL "Using FMOD Ex sound library.") endif (INSTALL_PROPRIETARY) if (FMODEX) - if (STANDALONE) + if (USESYSTEMLIBS) # In that case, we use the version of the library installed on the system set(FMODEX_FIND_REQUIRED ON) include(FindFMODEX) - else (STANDALONE) + else (USESYSTEMLIBS) if (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR) # If the path have been specified in the arguments, use that set(FMODEX_LIBRARIES ${FMODEX_LIBRARY}) @@ -41,6 +41,6 @@ if (FMODEX) set(FMODEX_LIBRARIES ${FMODEX_LIBRARY}) set(FMODEX_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/fmodex) endif (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR) - endif (STANDALONE) + endif (USESYSTEMLIBS) endif (FMODEX) diff --git a/indra/cmake/FindJsonCpp.cmake b/indra/cmake/FindJsonCpp.cmake index 0b056ada58..9398779cff 100755 --- a/indra/cmake/FindJsonCpp.cmake +++ b/indra/cmake/FindJsonCpp.cmake @@ -23,10 +23,10 @@ EXEC_PROGRAM(${CMAKE_CXX_COMPILER} # Try to find a library that was compiled with the same compiler version as we currently use. SET(JSONCPP_NAMES ${JSONCPP_NAMES} libjson_linux-gcc-${_gcc_COMPILER_VERSION}_libmt.so) -IF (STANDALONE) +IF (USESYSTEMLIBS) # On standalone, assume that the system installed library was compiled with the used compiler. SET(JSONCPP_NAMES ${JSONCPP_NAMES} libjson.so) -ENDIF (STANDALONE) +ENDIF (USESYSTEMLIBS) FIND_LIBRARY(JSONCPP_LIBRARY NAMES ${JSONCPP_NAMES} PATHS /usr/lib /usr/local/lib diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake index c9a90a9a8d..02c5b37f28 100755 --- a/indra/cmake/FreeType.cmake +++ b/indra/cmake/FreeType.cmake @@ -1,14 +1,14 @@ # -*- cmake -*- include(Prebuilt) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindPkgConfig) pkg_check_modules(FREETYPE REQUIRED freetype2) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(freetype) set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) set(FREETYPE_LIBRARIES freetype) -endif (STANDALONE) +endif (USESYSTEMLIBS) link_directories(${FREETYPE_LIBRARY_DIRS}) diff --git a/indra/cmake/GLEXT.cmake b/indra/cmake/GLEXT.cmake index 0a3dd976b4..a749644202 100644 --- a/indra/cmake/GLEXT.cmake +++ b/indra/cmake/GLEXT.cmake @@ -1,8 +1,8 @@ # -*- cmake -*- include(Prebuilt) -if (NOT STANDALONE) +if (NOT USESYSTEMLIBS) use_prebuilt_binary(glext) use_prebuilt_binary(glh_linear) set(GLEXT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) -endif (NOT STANDALONE) +endif (NOT USESYSTEMLIBS) diff --git a/indra/cmake/GLH.cmake b/indra/cmake/GLH.cmake index 911dbe4017..d5262f2efa 100755 --- a/indra/cmake/GLH.cmake +++ b/indra/cmake/GLH.cmake @@ -4,8 +4,8 @@ include(Prebuilt) set(GLH_FIND_REQUIRED TRUE) set(GLH_FIND_QUIETLY TRUE) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindGLH) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(glh_linear) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/GLOD.cmake b/indra/cmake/GLOD.cmake index 6bdbaf621e..3683768af9 100755 --- a/indra/cmake/GLOD.cmake +++ b/indra/cmake/GLOD.cmake @@ -1,9 +1,9 @@ # -*- cmake -*- include(Prebuilt) -if (NOT STANDALONE) +if (NOT USESYSTEMLIBS) use_prebuilt_binary(GLOD) -endif (NOT STANDALONE) +endif (NOT USESYSTEMLIBS) set(GLOD_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) set(GLOD_LIBRARIES GLOD) diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake index d2d0699bcd..cfd8565638 100755 --- a/indra/cmake/GStreamer010Plugin.cmake +++ b/indra/cmake/GStreamer010Plugin.cmake @@ -1,7 +1,7 @@ # -*- cmake -*- include(Prebuilt) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindPkgConfig) pkg_check_modules(GSTREAMER010 REQUIRED gstreamer-0.10) @@ -26,7 +26,7 @@ elseif (LINUX) gthread-2.0 glib-2.0 ) -endif (STANDALONE) +endif (USESYSTEMLIBS) if (GSTREAMER010_FOUND AND GSTREAMER010_PLUGINS_BASE_FOUND) set(GSTREAMER010 ON CACHE BOOL "Build with GStreamer-0.10 streaming media support.") diff --git a/indra/cmake/Glui.cmake b/indra/cmake/Glui.cmake index f62a56856c..db353a91ec 100755 --- a/indra/cmake/Glui.cmake +++ b/indra/cmake/Glui.cmake @@ -2,14 +2,14 @@ include(Linking) include(Prebuilt) -if (STANDALONE) +if (USESYSTEMLIBS) set(GLUI OFF CACHE BOOL "GLUI support for the llplugin/llmedia test apps.") -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(glui) set(GLUI ON CACHE BOOL "GLUI support for the llplugin/llmedia test apps.") -endif (STANDALONE) +endif (USESYSTEMLIBS) if (LINUX) set(GLUI ON CACHE BOOL diff --git a/indra/cmake/GoogleBreakpad.cmake b/indra/cmake/GoogleBreakpad.cmake index 96e22791ec..a41815f7b7 100755 --- a/indra/cmake/GoogleBreakpad.cmake +++ b/indra/cmake/GoogleBreakpad.cmake @@ -1,10 +1,10 @@ # -*- cmake -*- include(Prebuilt) -if (STANDALONE) +if (USESYSTEMLIBS) set(BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED ON) include(FindGoogleBreakpad) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(google_breakpad) if (DARWIN) set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler) @@ -18,5 +18,5 @@ else (STANDALONE) # yes, this does look dumb, no, it's not incorrect # set(BREAKPAD_INCLUDE_DIRECTORIES "${LIBS_PREBUILT_DIR}/include/google_breakpad" "${LIBS_PREBUILT_DIR}/include/google_breakpad/google_breakpad") -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake index f3fd008e49..c1faeb9325 100755 --- a/indra/cmake/GooglePerfTools.cmake +++ b/indra/cmake/GooglePerfTools.cmake @@ -5,9 +5,9 @@ include(Prebuilt) # set ON or OFF as desired. set (USE_TCMALLOC OFF) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindGooglePerfTools) -else (STANDALONE) +else (USESYSTEMLIBS) if (WINDOWS) if (USE_TCMALLOC) use_prebuilt_binary(gperftools) @@ -34,7 +34,7 @@ else (STANDALONE) ${LIBS_PREBUILT_DIR}/include) set(GOOGLE_PERFTOOLS_FOUND "YES") endif (LINUX) -endif (STANDALONE) +endif (USESYSTEMLIBS) if (GOOGLE_PERFTOOLS_FOUND) # XXX Disable temporarily, until we have compilation issues on 64-bit diff --git a/indra/cmake/Hunspell.cmake b/indra/cmake/Hunspell.cmake index 0c9cf93316..ef74d95b2a 100755 --- a/indra/cmake/Hunspell.cmake +++ b/indra/cmake/Hunspell.cmake @@ -4,9 +4,9 @@ include(Prebuilt) set(HUNSPELL_FIND_QUIETLY ON) set(HUNSPELL_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindHUNSPELL) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(libhunspell) if (WINDOWS) set(HUNSPELL_LIBRARY libhunspell) @@ -19,4 +19,4 @@ else (STANDALONE) endif() set(HUNSPELL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/hunspell) use_prebuilt_binary(dictionaries) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake index 4f99efd602..d6da22aecc 100755 --- a/indra/cmake/JPEG.cmake +++ b/indra/cmake/JPEG.cmake @@ -5,9 +5,9 @@ include(Linking) set(JPEG_FIND_QUIETLY ON) set(JPEG_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindJPEG) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(jpeglib) if (LINUX) set(JPEG_LIBRARIES jpeg) @@ -17,4 +17,4 @@ else (STANDALONE) set(JPEG_LIBRARIES jpeglib) endif (LINUX) set(JPEG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index 7ad73e5683..0aab2d6634 100755 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -5,9 +5,9 @@ include(Prebuilt) set(JSONCPP_FIND_QUIETLY ON) set(JSONCPP_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindJsonCpp) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(jsoncpp) if (WINDOWS) set(JSONCPP_LIBRARIES @@ -19,4 +19,4 @@ else (STANDALONE) set(JSONCPP_LIBRARIES libjson_linux-gcc-4.1.3_libmt.a) endif (WINDOWS) set(JSONCPP_INCLUDE_DIR "${LIBS_PREBUILT_DIR}/include/jsoncpp" "${LIBS_PREBUILT_DIR}/include/json") -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index 9bb3077797..4e6c41e528 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -202,9 +202,9 @@ FUNCTION(LL_ADD_INTEGRATION_TEST ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files}) SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}") - if(STANDALONE) + if(USESYSTEMLIBS) SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES COMPILE_FLAGS -I"${TUT_INCLUDE_DIR}") - endif(STANDALONE) + endif(USESYSTEMLIBS) # The following was copied to llcorehttp/CMakeLists.txt's texture_load target. # Any changes made here should be replicated there. @@ -275,10 +275,10 @@ MACRO(SET_TEST_PATH LISTVAR) set(${LISTVAR} ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources ${SHARED_LIB_STAGING_DIR}/Release/Resources /usr/lib) ELSE(WINDOWS) # Linux uses a single staging directory anyway. - IF (STANDALONE) + IF (USESYSTEMLIBS) set(${LISTVAR} ${CMAKE_BINARY_DIR}/llcommon /usr/lib /usr/local/lib) - ELSE (STANDALONE) + ELSE (USESYSTEMLIBS) set(${LISTVAR} ${SHARED_LIB_STAGING_DIR} /usr/lib) - ENDIF (STANDALONE) + ENDIF (USESYSTEMLIBS) ENDIF(WINDOWS) ENDMACRO(SET_TEST_PATH) diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake index ad732ef650..ba07a80f05 100755 --- a/indra/cmake/LLWindow.cmake +++ b/indra/cmake/LLWindow.cmake @@ -4,7 +4,7 @@ include(Variables) include(GLEXT) include(Prebuilt) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindSDL) # This should be done by FindSDL. Sigh. @@ -13,14 +13,14 @@ if (STANDALONE) SDL_INCLUDE_DIR SDL_LIBRARY ) -else (STANDALONE) +else (USESYSTEMLIBS) if (LINUX) use_prebuilt_binary(SDL) set (SDL_FOUND TRUE) set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/i686-linux) set (SDL_LIBRARY SDL directfb fusion direct) endif (LINUX) -endif (STANDALONE) +endif (USESYSTEMLIBS) if (SDL_FOUND) include_directories(${SDL_INCLUDE_DIR}) diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake index be6fe415f2..e72845db53 100755 --- a/indra/cmake/NDOF.cmake +++ b/indra/cmake/NDOF.cmake @@ -4,10 +4,10 @@ include(Prebuilt) set(NDOF ON CACHE BOOL "Use NDOF space navigator joystick library.") if (NDOF) - if (STANDALONE) + if (USESYSTEMLIBS) set(NDOF_FIND_REQUIRED ON) include(FindNDOF) - else (STANDALONE) + else (USESYSTEMLIBS) use_prebuilt_binary(ndofdev) if (WINDOWS) @@ -18,7 +18,7 @@ if (NDOF) set(NDOF_INCLUDE_DIR ${ARCH_PREBUILT_DIRS}/include/ndofdev) set(NDOF_FOUND 1) - endif (STANDALONE) + endif (USESYSTEMLIBS) endif (NDOF) if (NDOF_FOUND) diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake index a3e1fb924e..c084d68de7 100755 --- a/indra/cmake/OPENAL.cmake +++ b/indra/cmake/OPENAL.cmake @@ -10,14 +10,14 @@ endif (LINUX) if (OPENAL) set(OPENAL_LIB_INCLUDE_DIRS "${LIBS_PREBUILT_DIR}/include/AL") - if (STANDALONE) + if (USESYSTEMLIBS) include(FindPkgConfig) include(FindOpenAL) pkg_check_modules(OPENAL_LIB REQUIRED openal) pkg_check_modules(FREEALUT_LIB REQUIRED freealut) - else (STANDALONE) + else (USESYSTEMLIBS) use_prebuilt_binary(openal_soft) - endif (STANDALONE) + endif (USESYSTEMLIBS) if(WINDOWS) set(OPENAL_LIBRARIES OpenAL32 diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake index fcc82c2f49..bf0bde2ba7 100755 --- a/indra/cmake/OpenJPEG.cmake +++ b/indra/cmake/OpenJPEG.cmake @@ -4,9 +4,9 @@ include(Prebuilt) set(OPENJPEG_FIND_QUIETLY ON) set(OPENJPEG_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindOpenJPEG) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(openjpeg) if(WINDOWS) @@ -19,4 +19,4 @@ else (STANDALONE) endif(WINDOWS) set(OPENJPEG_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/openjpeg) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake index 2704912eb5..5b469f74f9 100755 --- a/indra/cmake/OpenSSL.cmake +++ b/indra/cmake/OpenSSL.cmake @@ -4,9 +4,9 @@ include(Prebuilt) set(OpenSSL_FIND_QUIETLY ON) set(OpenSSL_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindOpenSSL) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(openSSL) if (WINDOWS) set(OPENSSL_LIBRARIES ssleay32 libeay32) @@ -14,7 +14,7 @@ else (STANDALONE) set(OPENSSL_LIBRARIES ssl crypto) endif (WINDOWS) set(OPENSSL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) -endif (STANDALONE) +endif (USESYSTEMLIBS) if (LINUX) set(CRYPTO_LIBRARIES crypto) diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake index 913c575672..173d59391e 100755 --- a/indra/cmake/PNG.cmake +++ b/indra/cmake/PNG.cmake @@ -4,9 +4,9 @@ include(Prebuilt) set(PNG_FIND_QUIETLY ON) set(PNG_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindPNG) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(libpng) if (WINDOWS) set(PNG_LIBRARIES libpng15) @@ -18,4 +18,4 @@ else (STANDALONE) set(PNG_LIBRARIES png15) set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15) endif() -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake index ac0cbde253..c3fd8f1666 100755 --- a/indra/cmake/Prebuilt.cmake +++ b/indra/cmake/Prebuilt.cmake @@ -18,7 +18,7 @@ endif(INSTALL_PROPRIETARY) # ${CMAKE_BINARY_DIR}/temp/${_binary}_installed) macro (use_prebuilt_binary _binary) if (NOT DEFINED STANDALONE_${_binary}) - set(STANDALONE_${_binary} ${STANDALONE}) + set(STANDALONE_${_binary} ${USESYSTEMLIBS}) endif (NOT DEFINED STANDALONE_${_binary}) if (NOT STANDALONE_${_binary}) diff --git a/indra/cmake/PulseAudio.cmake b/indra/cmake/PulseAudio.cmake index 360a971058..cce27f1bdd 100755 --- a/indra/cmake/PulseAudio.cmake +++ b/indra/cmake/PulseAudio.cmake @@ -4,7 +4,7 @@ include(Prebuilt) set(PULSEAUDIO OFF CACHE BOOL "Build with PulseAudio support, if available.") if (PULSEAUDIO) - if (STANDALONE) + if (USESYSTEMLIBS) include(FindPkgConfig) pkg_check_modules(PULSEAUDIO libpulse) @@ -20,7 +20,7 @@ if (PULSEAUDIO) set(PULSEAUDIO_LIBRARIES # none needed! ) - endif (STANDALONE) + endif (USESYSTEMLIBS) endif (PULSEAUDIO) if (PULSEAUDIO_FOUND) diff --git a/indra/cmake/Tut.cmake b/indra/cmake/Tut.cmake index 7488e9dcb0..e11a3c3314 100755 --- a/indra/cmake/Tut.cmake +++ b/indra/cmake/Tut.cmake @@ -1,6 +1,6 @@ # -*- cmake -*- include(Prebuilt) -if (NOT STANDALONE) +if (NOT USESYSTEMLIBS) use_prebuilt_binary(tut) -endif(NOT STANDALONE) +endif(NOT USESYSTEMLIBS) diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake index d0fd4df03a..58acdc22bd 100755 --- a/indra/cmake/UI.cmake +++ b/indra/cmake/UI.cmake @@ -2,7 +2,7 @@ include(Prebuilt) include(FreeType) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindPkgConfig) if (LINUX) @@ -31,7 +31,7 @@ if (STANDALONE) list(APPEND UI_LIBRARIES ${${pkg}_LIBRARIES}) add_definitions(${${pkg}_CFLAGS_OTHERS}) endforeach(pkg) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(gtk-atk-pango-glib) if (LINUX) set(UI_LIBRARIES @@ -59,7 +59,7 @@ else (STANDALONE) foreach(include ${${LL_ARCH}_INCLUDES}) include_directories(${LIBS_PREBUILT_DIR}/include/${include}) endforeach(include) -endif (STANDALONE) +endif (USESYSTEMLIBS) if (LINUX) add_definitions(-DLL_GTK=1 -DLL_X11=1) diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 22d0a7f0fe..963b1bd386 100755 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -183,7 +183,7 @@ if (XCODE_VERSION GREATER 4.2) endif (XCODE_VERSION GREATER 4.2) set(VERSION_BUILD "0" CACHE STRING "Revision number passed in from the outside") -set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.") +set(USESYSTEMLIBS OFF CACHE BOOL "Use libraries from your system rather than Linden-supplied prebuilt libraries.") set(UNATTENDED OFF CACHE BOOL "Should be set to ON for building with VC Express editions.") set(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Enable use of precompiled header directives where supported.") diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake index 5b00c989a4..d4be24799f 100755 --- a/indra/cmake/ViewerMiscLibs.cmake +++ b/indra/cmake/ViewerMiscLibs.cmake @@ -1,10 +1,10 @@ # -*- cmake -*- include(Prebuilt) -if (NOT STANDALONE) +if (NOT USESYSTEMLIBS) use_prebuilt_binary(libhunspell) use_prebuilt_binary(libuuid) use_prebuilt_binary(slvoice) use_prebuilt_binary(fontconfig) -endif(NOT STANDALONE) +endif(NOT USESYSTEMLIBS) diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake index d9df78bfc8..76f2c148db 100755 --- a/indra/cmake/WebKitLibPlugin.cmake +++ b/indra/cmake/WebKitLibPlugin.cmake @@ -2,7 +2,7 @@ include(Linking) include(Prebuilt) -if (STANDALONE) +if (USESYSTEMLIBS) # The minimal version, 4.4.3, is rather arbitrary: it's the version in Debian/Lenny. find_package(Qt4 4.4.3 COMPONENTS QtCore QtGui QtNetwork QtOpenGL QtWebKit REQUIRED) include(${QT_USE_FILE}) @@ -28,11 +28,11 @@ if (STANDALONE) list(APPEND QT_PLUGIN_LIBRARIES jpeg) set(WEBKITLIBPLUGIN OFF CACHE BOOL "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.") -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(llqtwebkit) set(WEBKITLIBPLUGIN ON CACHE BOOL "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.") -endif (STANDALONE) +endif (USESYSTEMLIBS) if (WINDOWS) set(WEBKIT_PLUGIN_LIBRARIES diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake index 5bd4848245..3a0caa0a06 100755 --- a/indra/cmake/XmlRpcEpi.cmake +++ b/indra/cmake/XmlRpcEpi.cmake @@ -4,9 +4,9 @@ include(Prebuilt) set(XMLRPCEPI_FIND_QUIETLY ON) set(XMLRPCEPI_FIND_REQUIRED ON) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindXmlRpcEpi) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(xmlrpc-epi) if (WINDOWS) set(XMLRPCEPI_LIBRARIES @@ -17,4 +17,4 @@ else (STANDALONE) set(XMLRPCEPI_LIBRARIES xmlrpc-epi) endif (WINDOWS) set(XMLRPCEPI_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) -endif (STANDALONE) +endif (USESYSTEMLIBS) diff --git a/indra/cmake/ZLIB.cmake b/indra/cmake/ZLIB.cmake index 48e5130ad5..b99a8644c9 100755 --- a/indra/cmake/ZLIB.cmake +++ b/indra/cmake/ZLIB.cmake @@ -5,9 +5,9 @@ set(ZLIB_FIND_REQUIRED ON) include(Prebuilt) -if (STANDALONE) +if (USESYSTEMLIBS) include(FindZLIB) -else (STANDALONE) +else (USESYSTEMLIBS) use_prebuilt_binary(zlib) if (WINDOWS) set(ZLIB_LIBRARIES @@ -19,4 +19,4 @@ else (STANDALONE) if (WINDOWS OR LINUX) set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib) endif (WINDOWS OR LINUX) -endif (STANDALONE) +endif (USESYSTEMLIBS) -- cgit v1.2.3 From 469438707dd61711540f7277ac43f65ac399a51b Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Fri, 4 Apr 2014 16:30:50 -0400 Subject: Library updates and switch to 3d-llqtwebkit2 build products. SDL to 1.2.15, c-ares to latest 1.10.0 build, Boost to 1.55.0 with coroutine updates/fixes, curl to 7.34.0, libpng to 1.6.8, openssl to 1.0.1e, zlib to latest 1.2.8 build, llqtwebkit built from 4.7.1 sources refactored and tested in 3p-llqtwebkit2 repository. Windows is functional with a good number of warning messages at runtime from libpng and KDU. MoaP/slplugin functioning. --- indra/cmake/Boost.cmake | 11 +++++++++++ indra/cmake/Copy3rdPartyLibs.cmake | 1 + 2 files changed, 12 insertions(+) (limited to 'indra/cmake') diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index cff762e1f0..63e91a37be 100755 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -8,6 +8,7 @@ if (STANDALONE) include(FindBoost) set(BOOST_CONTEXT_LIBRARY boost_context-mt) + set(BOOST_COROUTINE_LIBRARY boost_coroutine-mt) set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt) set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt) set(BOOST_REGEX_LIBRARY boost_regex-mt) @@ -21,6 +22,7 @@ else (STANDALONE) if (WINDOWS) if(MSVC80) + # This should be obsolete at this point set(BOOST_CONTEXT_LIBRARY optimized libboost_context-vc80-mt-${BOOST_VERSION} debug libboost_context-vc80-mt-gd-${BOOST_VERSION}) @@ -47,6 +49,9 @@ else (STANDALONE) set(BOOST_CONTEXT_LIBRARY optimized libboost_context-mt debug libboost_context-mt-gd) + set(BOOST_COROUTINE_LIBRARY + optimized libboost_coroutine-mt + debug libboost_coroutine-mt-gd) set(BOOST_FILESYSTEM_LIBRARY optimized libboost_filesystem-mt debug libboost_filesystem-mt-gd) @@ -70,6 +75,9 @@ else (STANDALONE) set(BOOST_CONTEXT_LIBRARY optimized boost_context-mt debug boost_context-mt-d) + set(BOOST_COROUTINE_LIBRARY + optimized boost_coroutine-mt + debug boost_coroutine-mt-d) set(BOOST_FILESYSTEM_LIBRARY optimized boost_filesystem-mt debug boost_filesystem-mt-d) @@ -92,6 +100,9 @@ else (STANDALONE) set(BOOST_CONTEXT_LIBRARY optimized boost_context-mt debug boost_context-mt-d) + set(BOOST_COROUTINE_LIBRARY + optimized boost_coroutine-mt + debug boost_coroutine-mt-d) set(BOOST_FILESYSTEM_LIBRARY optimized boost_filesystem-mt debug boost_filesystem-mt-d) diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 264039390c..59564c2c1b 100755 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -260,6 +260,7 @@ elseif(LINUX) libaprutil-1.so.0 libatk-1.0.so libboost_context-mt.so.${BOOST_VERSION}.0 + libboost_coroutine-mt.so.${BOOST_VERSION}.0 libboost_filesystem-mt.so.${BOOST_VERSION}.0 libboost_program_options-mt.so.${BOOST_VERSION}.0 libboost_regex-mt.so.${BOOST_VERSION}.0 -- cgit v1.2.3 From 1422f8961285c24f88b6c10fd4381ae78be93b6c Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Fri, 4 Apr 2014 21:59:15 +0000 Subject: Linux: Finish new Boost dependencies to get Linux building again. --- indra/cmake/Boost.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/cmake') diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index 63e91a37be..348521a77c 100755 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -18,7 +18,7 @@ if (STANDALONE) else (STANDALONE) use_prebuilt_binary(boost) set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) - set(BOOST_VERSION "1.52") + set(BOOST_VERSION "1.55") if (WINDOWS) if(MSVC80) -- cgit v1.2.3 From 30eb6d13f56534695076b2f159ea93569af6d14c Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Mon, 7 Apr 2014 14:01:34 -0400 Subject: Linux/Mac: Update to latest OpenSSL 1.0.1e build. Fix manifest for openssl on Mac (copy, deploy). Revert Linux manifest work which tried to work around 0555 permissions on .sos (and didn't work). --- indra/cmake/Copy3rdPartyLibs.cmake | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 59564c2c1b..f2fbc8c775 100755 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -206,6 +206,10 @@ elseif(DARWIN) ) set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}") set(debug_files + libcrypto.dylib + libcrypto.1.0.0.dylib + libssl.dylib + libssl.1.0.0.dylib ) set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(release_files @@ -213,15 +217,19 @@ elseif(DARWIN) libapr-1.dylib libaprutil-1.0.dylib libaprutil-1.dylib + libcollada14dom.dylib + libcrypto.dylib + libcrypto.1.0.0.dylib + libexception_handler.dylib libexpat.1.5.2.dylib libexpat.dylib libGLOD.dylib + libhunspell-1.3.0.dylib libllqtwebkit.dylib libminizip.a libndofdev.dylib - libhunspell-1.3.0.dylib - libexception_handler.dylib - libcollada14dom.dylib + libssl.dylib + libssl.1.0.0.dylib ) if (FMODEX) -- cgit v1.2.3 From 6631dc22f0513b5ffe28ca48f95ee31fc684d195 Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Wed, 9 Apr 2014 21:05:55 +0000 Subject: All/Linux: Update llqtwebkit to latest all-shared lib build. Linux package assembly updated to deal with Qt libraries and discrete codec and imageformat plugins (which live under bin/llplugin). Functioning Linux viewer with MoaP support with a few image problems (sRGB profile, zlib errors). Much of this expected to be due to the new 1.6.8/1.2.8 libpng/libz and we'll fix as needed. --- indra/cmake/WebKitLibPlugin.cmake | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake index d9df78bfc8..9c4579ecf3 100755 --- a/indra/cmake/WebKitLibPlugin.cmake +++ b/indra/cmake/WebKitLibPlugin.cmake @@ -53,8 +53,18 @@ if (WINDOWS) ) elseif (DARWIN) set(WEBKIT_PLUGIN_LIBRARIES - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib - debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib + optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.a + optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtWebKit.4.dylib + optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtOpenGL.4.dylib + optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtNetwork.4.dylib + optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtGui.4.dylib + optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtCore.4.dylib + debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.a + debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtWebKit.4.dylib + debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtOpenGL.4.dylib + debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtNetwork.4.dylib + debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtGui.4.dylib + debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtCore.4.dylib ) elseif (LINUX) set(WEBKIT_PLUGIN_LIBRARIES ${LLQTWEBKIT_LIBRARY} ${QT_LIBRARIES} ${QT_PLUGIN_LIBRARIES}) @@ -70,7 +80,7 @@ elseif (LINUX) QtNetwork QtGui QtCore - jscore +# jscore # qgif # qjpeg # jpeg -- cgit v1.2.3 From e72d546fe36ffb262a6a844ac4aae432df357ed5 Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Fri, 11 Apr 2014 19:19:22 -0400 Subject: Mac: Update llqtwebkit build, build and package dylib Qt4 pieces. Part of the switchover to dynamic Qt4. This mostly completes the Mac side. Webkit is functional on Mac, plugins work. The two test programs, llfbconnectest and llplugintest, need a little more work to run without manual fixup ('.' on PATH and maybe a symlink to libz.1.dylib and they run and function on Mac). Also need to address libz.dylib vs libz.a. Currently resolving against dylib which is not what I want. --- indra/cmake/Copy3rdPartyLibs.cmake | 1 - indra/cmake/Linking.cmake | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/cmake') diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index f2fbc8c775..5dfa6ea4fb 100755 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -225,7 +225,6 @@ elseif(DARWIN) libexpat.dylib libGLOD.dylib libhunspell-1.3.0.dylib - libllqtwebkit.dylib libminizip.a libndofdev.dylib libssl.dylib diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index b9c9e531fc..74fe3f1137 100755 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -6,6 +6,7 @@ set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") include(Variables) set(ARCH_PREBUILT_DIRS ${AUTOBUILD_INSTALL_DIR}/lib) +set(ARCH_PREBUILT_DIRS_PLUGINS ${AUTOBUILD_INSTALL_DIR}/plugins) set(ARCH_PREBUILT_DIRS_RELEASE ${AUTOBUILD_INSTALL_DIR}/lib/release) set(ARCH_PREBUILT_DIRS_DEBUG ${AUTOBUILD_INSTALL_DIR}/lib/debug) if (WINDOWS) -- cgit v1.2.3 From 04404b68b56638171bc200f9a22a660257370d5d Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Mon, 14 Apr 2014 17:59:00 -0400 Subject: All/Mac: Update libraries to new template builds. Package for static libz/libpng/openssl. Update library dependencies to reference builds using new templates and modern build hosts for: SDL, c-ares, boost, curl, libpng, llqtwebkit2, openssl and zlib. Update manifest, library copying and 'test_apps' setup to reflect that zlib and openssl are now always static (on Mac and Linux). Viewer and test_apps now functional on 10.7 Mac. --- indra/cmake/Copy3rdPartyLibs.cmake | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 5dfa6ea4fb..068f1e9af7 100755 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -206,10 +206,6 @@ elseif(DARWIN) ) set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}") set(debug_files - libcrypto.dylib - libcrypto.1.0.0.dylib - libssl.dylib - libssl.1.0.0.dylib ) set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(release_files @@ -218,8 +214,6 @@ elseif(DARWIN) libaprutil-1.0.dylib libaprutil-1.dylib libcollada14dom.dylib - libcrypto.dylib - libcrypto.1.0.0.dylib libexception_handler.dylib libexpat.1.5.2.dylib libexpat.dylib @@ -227,8 +221,6 @@ elseif(DARWIN) libhunspell-1.3.0.dylib libminizip.a libndofdev.dylib - libssl.dylib - libssl.1.0.0.dylib ) if (FMODEX) @@ -275,7 +267,6 @@ elseif(LINUX) libboost_system-mt.so.${BOOST_VERSION}.0 libboost_thread-mt.so.${BOOST_VERSION}.0 libcollada14dom.so - libcrypto.so.1.0.0 libdb-5.1.so libexpat.so libexpat.so.1 @@ -291,10 +282,8 @@ elseif(LINUX) libminizip.so libopenal.so libopenjpeg.so - libssl.so libuuid.so.16 libuuid.so.16.0.22 - libssl.so.1.0.0 libfontconfig.so.1.8.0 ) -- cgit v1.2.3 From f8874d04b8ca238ee99dc464055295cff417a9b2 Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Tue, 15 Apr 2014 22:48:52 +0000 Subject: Linux/Win: Bad checksum on Windows package. Libz and libpng linking changes to find newest code. Windows autobuild package had a bad checksum due to oddities in the build system. On Linux I've been fighting with getting libz 1.2.8 and libpng 1.6.8 to be the definitive version in the viewer. Problem is the *massive* library search tree we assemble. We find older shared library versions first and so those dominated. By using --whole-archive with static libraries, the packaged versions of these libraries are made definitive. --- indra/cmake/OpenSSL.cmake | 2 +- indra/cmake/PNG.cmake | 13 +++++++++++++ indra/cmake/ZLIB.cmake | 21 +++++++++++++++++---- 3 files changed, 31 insertions(+), 5 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake index 2704912eb5..4593821921 100755 --- a/indra/cmake/OpenSSL.cmake +++ b/indra/cmake/OpenSSL.cmake @@ -17,7 +17,7 @@ else (STANDALONE) endif (STANDALONE) if (LINUX) - set(CRYPTO_LIBRARIES crypto) + set(CRYPTO_LIBRARIES crypto dl) elseif (DARWIN) set(CRYPTO_LIBRARIES crypto) endif (LINUX) diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake index d9afe772ae..9653591f67 100755 --- a/indra/cmake/PNG.cmake +++ b/indra/cmake/PNG.cmake @@ -15,6 +15,19 @@ else (STANDALONE) set(PNG_LIBRARIES png16) set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16) else() + # + # When we have updated static libraries in competition with older + # shared libraries and we want the former to win, we need to do some + # extra work. The *_PRELOAD_ARCHIVES settings are invoked early + # and will pull in the entire archive to the binary giving it + # priority in symbol resolution. Beware of cmake moving the + # achive load itself to another place on the link command line. If + # that happens, you can try something like -Wl,-lpng16 here to hide + # the archive. Also be aware that the linker will not tolerate a + # second whole-archive load of the archive. See viewer's + # CMakeLists.txt for more information. + # + set(PNG_PRELOAD_ARCHIVES -Wl,--whole-archive png16 -Wl,--no-whole-archive) set(PNG_LIBRARIES png16) set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16) endif() diff --git a/indra/cmake/ZLIB.cmake b/indra/cmake/ZLIB.cmake index 48e5130ad5..0470f3e797 100755 --- a/indra/cmake/ZLIB.cmake +++ b/indra/cmake/ZLIB.cmake @@ -13,10 +13,23 @@ else (STANDALONE) set(ZLIB_LIBRARIES debug zlibd optimized zlib) - else (WINDOWS) + elseif (LINUX) + # + # When we have updated static libraries in competition with older + # shared libraries and we want the former to win, we need to do some + # extra work. The *_PRELOAD_ARCHIVES settings are invoked early + # and will pull in the entire archive to the binary giving it + # priority in symbol resolution. Beware of cmake moving the + # achive load itself to another place on the link command line. If + # that happens, you can try something like -Wl,-lz here to hide + # the archive. Also be aware that the linker will not tolerate a + # second whole-archive load of the archive. See viewer's + # CMakeLists.txt for more information. + # + set(ZLIB_PRELOAD_ARCHIVES -Wl,--whole-archive z -Wl,--no-whole-archive) + set(ZLIB_LIBRARIES z) + elseif (DARWIN) set(ZLIB_LIBRARIES z) endif (WINDOWS) - if (WINDOWS OR LINUX) - set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib) - endif (WINDOWS OR LINUX) + set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib) endif (STANDALONE) -- cgit v1.2.3 From 5870788f68c6b1fb504ae95403e7da95bc55ed4c Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 22 Apr 2014 16:08:13 -0400 Subject: catch a few more cases of STANDALONE -> USESYSTEMLIBS --- indra/cmake/00-Common.cmake | 2 +- indra/cmake/Prebuilt.cmake | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 69173c38a2..335dd89080 100755 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -226,7 +226,7 @@ endif (LINUX OR DARWIN) if (USESYSTEMLIBS) - add_definitions(-DLL_STANDALONE=1) + add_definitions(-DLL_USESYSTEMLIBS=1) if (LINUX AND ${ARCH} STREQUAL "i686") add_definitions(-march=pentiumpro) diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake index c3fd8f1666..e548805148 100755 --- a/indra/cmake/Prebuilt.cmake +++ b/indra/cmake/Prebuilt.cmake @@ -17,11 +17,11 @@ endif(INSTALL_PROPRIETARY) # of previous attempts is serialized in the file # ${CMAKE_BINARY_DIR}/temp/${_binary}_installed) macro (use_prebuilt_binary _binary) - if (NOT DEFINED STANDALONE_${_binary}) - set(STANDALONE_${_binary} ${USESYSTEMLIBS}) - endif (NOT DEFINED STANDALONE_${_binary}) + if (NOT DEFINED USESYSTEMLIBS_${_binary}) + set(USESYSTEMLIBS_${_binary} ${USESYSTEMLIBS}) + endif (NOT DEFINED USESYSTEMLIBS_${_binary}) - if (NOT STANDALONE_${_binary}) + if (NOT USESYSTEMLIBS_${_binary}) if("${${_binary}_installed}" STREQUAL "" AND EXISTS "${CMAKE_BINARY_DIR}/temp/${_binary}_installed") file(READ ${CMAKE_BINARY_DIR}/temp/${_binary}_installed "${_binary}_installed") if(DEBUG_PREBUILT) @@ -52,7 +52,7 @@ macro (use_prebuilt_binary _binary) "Failed to download or unpack prebuilt '${_binary}'." " Process returned ${${_binary}_installed}.") endif (NOT ${_binary}_installed EQUAL 0) - endif (NOT STANDALONE_${_binary}) + endif (NOT USESYSTEMLIBS_${_binary}) endmacro (use_prebuilt_binary _binary) endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) -- cgit v1.2.3 From 403ec62e3ce9c32961d50ff13b38a48c24a5cc4b Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Wed, 28 May 2014 19:40:45 +0000 Subject: All: Update library SDL to 290309, c-ares to 290089, boost to 290191, colladadom to 290229, curl to 290186, fontconfig to 290258, freetype to 290255, google-mock/gmock/gtest to 290199, libpng to 290081, libxml2 to 290157, llqtwebkit to 290262/250147 (to be fixed shortly), openssl to 290083, pcre to 290150, zlib to 290080. The freetype2 headers are now normalized to what they would normally be on a unix-type system. Libxml2 and pcre are available on all platforms. Libraries generally move in the direction of static archives rather than shared libraries (e.g. openssl). The llqtwebkit side is a step back from the more ambitious goal. What will be used (290262) will be a simple rebuild of the existing 4.7.1 library with updated package dependencies. The bigger work will be in the future. --- indra/cmake/Copy3rdPartyLibs.cmake | 19 +------------------ indra/cmake/FreeType.cmake | 2 +- indra/cmake/GStreamer010Plugin.cmake | 2 +- indra/cmake/GoogleMock.cmake | 2 +- indra/cmake/LLPrimitive.cmake | 13 +++++++++---- indra/cmake/OpenSSL.cmake | 2 +- indra/cmake/WebKitLibPlugin.cmake | 18 +++++------------- 7 files changed, 19 insertions(+), 39 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 068f1e9af7..ff8cbedfd4 100755 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -40,7 +40,6 @@ if(WINDOWS) libapriconv-1.dll ssleay32.dll libeay32.dll - libcollada14dom22-d.dll glod.dll libhunspell.dll ) @@ -53,7 +52,6 @@ if(WINDOWS) libapriconv-1.dll ssleay32.dll libeay32.dll - libcollada14dom22.dll glod.dll libhunspell.dll ) @@ -213,13 +211,12 @@ elseif(DARWIN) libapr-1.dylib libaprutil-1.0.dylib libaprutil-1.dylib - libcollada14dom.dylib libexception_handler.dylib libexpat.1.5.2.dylib libexpat.dylib libGLOD.dylib libhunspell-1.3.0.dylib - libminizip.a + libllqtwebkit.dylib libndofdev.dylib ) @@ -258,28 +255,14 @@ elseif(LINUX) libapr-1.so.0 libaprutil-1.so.0 libatk-1.0.so - libboost_context-mt.so.${BOOST_VERSION}.0 - libboost_coroutine-mt.so.${BOOST_VERSION}.0 - libboost_filesystem-mt.so.${BOOST_VERSION}.0 - libboost_program_options-mt.so.${BOOST_VERSION}.0 - libboost_regex-mt.so.${BOOST_VERSION}.0 - libboost_signals-mt.so.${BOOST_VERSION}.0 - libboost_system-mt.so.${BOOST_VERSION}.0 - libboost_thread-mt.so.${BOOST_VERSION}.0 - libcollada14dom.so libdb-5.1.so libexpat.so libexpat.so.1 libfreetype.so.6 libGLOD.so - libgmock_main.so - libgmock.so.0 libgmodule-2.0.so libgobject-2.0.so - libgtest_main.so - libgtest.so.0 libhunspell-1.3.so.0.0.0 - libminizip.so libopenal.so libopenjpeg.so libuuid.so.16 diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake index c9a90a9a8d..d5bbfc7d84 100755 --- a/indra/cmake/FreeType.cmake +++ b/indra/cmake/FreeType.cmake @@ -7,7 +7,7 @@ if (STANDALONE) pkg_check_modules(FREETYPE REQUIRED freetype2) else (STANDALONE) use_prebuilt_binary(freetype) - set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) + set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/freetype2/) set(FREETYPE_LIBRARIES freetype) endif (STANDALONE) diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake index d2d0699bcd..8918ee0c90 100755 --- a/indra/cmake/GStreamer010Plugin.cmake +++ b/indra/cmake/GStreamer010Plugin.cmake @@ -9,7 +9,7 @@ if (STANDALONE) elseif (LINUX) use_prebuilt_binary(gstreamer) # possible libxml should have its own .cmake file instead - use_prebuilt_binary(libxml) + use_prebuilt_binary(libxml2) set(GSTREAMER010_FOUND ON FORCE BOOL) set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL) set(GSTREAMER010_INCLUDE_DIRS diff --git a/indra/cmake/GoogleMock.cmake b/indra/cmake/GoogleMock.cmake index c4c96a9af7..cac072988e 100755 --- a/indra/cmake/GoogleMock.cmake +++ b/indra/cmake/GoogleMock.cmake @@ -2,7 +2,7 @@ include(Prebuilt) include(Linking) -use_prebuilt_binary(googlemock) +use_prebuilt_binary(gmock) set(GOOGLEMOCK_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 0d87ff579a..71b80a1ae4 100755 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -6,7 +6,7 @@ include(Boost) use_prebuilt_binary(colladadom) use_prebuilt_binary(pcre) -use_prebuilt_binary(libxml) +use_prebuilt_binary(libxml2) set(LLPRIMITIVE_INCLUDE_DIRS ${LIBS_OPEN_DIR}/llprimitive @@ -15,14 +15,19 @@ if (WINDOWS) set(LLPRIMITIVE_LIBRARIES debug llprimitive optimized llprimitive - debug libcollada14dom22-d - optimized libcollada14dom22 + debug libcollada14dom23-sd + optimized libcollada14dom23-s + debug pcrecppd + optimized pcrecpp + debug pcred + optimized pcre ${BOOST_SYSTEM_LIBRARIES} ) else (WINDOWS) set(LLPRIMITIVE_LIBRARIES llprimitive - collada14dom + debug collada14dom-d + optimized collada14dom minizip xml2 pcrecpp diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake index 4593821921..a1c75ad489 100755 --- a/indra/cmake/OpenSSL.cmake +++ b/indra/cmake/OpenSSL.cmake @@ -7,7 +7,7 @@ set(OpenSSL_FIND_REQUIRED ON) if (STANDALONE) include(FindOpenSSL) else (STANDALONE) - use_prebuilt_binary(openSSL) + use_prebuilt_binary(openssl) if (WINDOWS) set(OPENSSL_LIBRARIES ssleay32 libeay32) else (WINDOWS) diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake index 9c4579ecf3..cab176a096 100755 --- a/indra/cmake/WebKitLibPlugin.cmake +++ b/indra/cmake/WebKitLibPlugin.cmake @@ -1,6 +1,7 @@ # -*- cmake -*- include(Linking) include(Prebuilt) +include(OpenSSL) if (STANDALONE) # The minimal version, 4.4.3, is rather arbitrary: it's the version in Debian/Lenny. @@ -53,18 +54,8 @@ if (WINDOWS) ) elseif (DARWIN) set(WEBKIT_PLUGIN_LIBRARIES - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.a - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtWebKit.4.dylib - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtOpenGL.4.dylib - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtNetwork.4.dylib - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtGui.4.dylib - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtCore.4.dylib - debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.a - debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtWebKit.4.dylib - debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtOpenGL.4.dylib - debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtNetwork.4.dylib - debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtGui.4.dylib - debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtCore.4.dylib + optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib + debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ) elseif (LINUX) set(WEBKIT_PLUGIN_LIBRARIES ${LLQTWEBKIT_LIBRARY} ${QT_LIBRARIES} ${QT_PLUGIN_LIBRARIES}) @@ -78,9 +69,10 @@ elseif (LINUX) QtWebKit QtOpenGL QtNetwork + ${OPENSSL_LIBRARIES} QtGui QtCore -# jscore + jscore # qgif # qjpeg # jpeg -- cgit v1.2.3 From 98ecd0443689907e3da25754868459f169cb7d85 Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Wed, 28 May 2014 19:10:26 -0400 Subject: Win: Get running on Windows. Remove DOM_DYNAMIC, link with libxml2_a.lib. Release and Debug builds working. Remove the DOM_DYNAMIC define so that we don't create declspec declarations to colladadom objects and pull in libxml2_a (_a for archive) to complete the link. Debug functional and would be moreso if not for all the CrtCheckMemory() calls. --- indra/cmake/00-Common.cmake | 2 +- indra/cmake/LLPrimitive.cmake | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'indra/cmake') diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 1d78638143..244110ff66 100755 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -62,7 +62,7 @@ if (WINDOWS) add_definitions( /DLL_WINDOWS=1 /DNOMINMAX - /DDOM_DYNAMIC +# /DDOM_DYNAMIC # For shared library colladadom /DUNICODE /D_UNICODE /GS diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 71b80a1ae4..d02160e439 100755 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -17,6 +17,7 @@ if (WINDOWS) optimized llprimitive debug libcollada14dom23-sd optimized libcollada14dom23-s + libxml2_a debug pcrecppd optimized pcrecpp debug pcred -- cgit v1.2.3 From 5b542e227bb952f1517c32c2de8c8af0294ec617 Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Tue, 3 Jun 2014 19:37:58 -0400 Subject: All: Committing to llqtwebkit2 and the future. Updating all libraries. Updating SDL to 290561, c-ares to 290399, Boost to 290566, colladadom to 290576, curl to 290567, fontconfig to 290569, freetype to 290557, google-mock to 290574, libpng to 290558, libxml2 to 290562, llqtwebkit to 290578, openssl to 290560, PCRE to 290406, zlib to 290556. Document compiling and linking in new 00-COMPILE-LINK-RUN.txt in indra/cmake. It is the README for the building process based on things learned during this library project. Switch building process back to style used for new llqtwebkit2 repo. This builds shared libraries for Qt4 products on all platforms using current build machines and TC task templates. All platforms are building. All have comparable FPS rates. Builds are getting quieter. Forward, comrades! --- indra/cmake/00-COMPILE-LINK-RUN.txt | 302 ++++++++++++++++++++++++++++++++++++ indra/cmake/Copy3rdPartyLibs.cmake | 3 +- indra/cmake/LLPrimitive.cmake | 13 +- indra/cmake/WebKitLibPlugin.cmake | 41 ++--- 4 files changed, 339 insertions(+), 20 deletions(-) create mode 100644 indra/cmake/00-COMPILE-LINK-RUN.txt (limited to 'indra/cmake') diff --git a/indra/cmake/00-COMPILE-LINK-RUN.txt b/indra/cmake/00-COMPILE-LINK-RUN.txt new file mode 100644 index 0000000000..8f72448fe9 --- /dev/null +++ b/indra/cmake/00-COMPILE-LINK-RUN.txt @@ -0,0 +1,302 @@ + + A short guide to compiling, linking, running and debugging issues + in the viewer and its packaged libraries. + +Introduction + + A recent pass through some third-party libraries resulted in the + collection of a lot of information about how things should and + shouldn't be built in the viewer. Some of that is presented below + with hints and rules about doing things well. What's presented is + a guideline only. Not all suggestions are hard rules and you'll + find exceptions all over. Some exceptions arise from solid + reasining, others may be legacy that hasn't been re-examined. + + Use good engineering judgement when applying this information. + +Compilation + + Windows Targets + + Significant compilation flags and defines follow: + + ---------------------------------------------------------------------------- + Option Release RelWithDebInfo Debug + ---------------------------------------------------------------------------- + wchar_t /Zc:wchar_t- " " + RTL type /MD /MD /MDd + FLoating Point /fp:fast " " + Debug Info /Zi (app/dll), /Z7 (lib) " " + Optimizer /O2 /Ob2 /GR /Od /Ob0 /GR /Od /GR + Incr. Link /INCREMENTAL:NO /INCREMENTAL /INCREMENTAL:NO + Debug /DEBUG /DEBUG /DEBUG + /OPT:REF + Ignore Libs LIBCMT LIBCMT LIBCMT;LIBCMTD;MSVCRT + Alignment Default " " + + Defines WIN32 " " + _WINDOWS " " + LL_RELEASE=1 LL_RELEASE=1 n/a + LL_RELEASE_FOR_DOWNLOAD=1 n/a n/a + NDEBUG NDEBUG _DEBUG + n/a n/a LL_DEBUG=1 + n/a LL_RELEASE_WITH_\ n/a + DEBUG_INFO=1 + n/a n/a _SCL_SECURE_NO_WARNINGS=1 + _SECURE_STL=0 _SECURE_STL=0 _SECURE_STL=0 + _HAS_ITERATOR_DEBUGGING=0 n/a n/a + LL_WINDOWS=1 " " + UNICODE " " + _UNICODE " " + WINVER=0x0501 " " + _WIN32_WINNT=0x0501 " " + LL_OS_DRAGDROP_ENABLED=1 " " + CARES_STATICLIB " " + LIB_NDOF=1 " " + + ---------------------------------------------------------------------------- + Notes: + + 1. /Zc:wchar_t-. Not certain where this comes from. It may be + due to a default set of compilation flags in Qt 4.X that then + propagates outward. In Qt 5.X, this setting is flipped back to + default (wchar_t is a built-in). Other options for dealing with + this include: + + http://msdn.microsoft.com/en-us/library/dh8che7s%28v=vs.110%29.aspx + + Recommend trying to stay with /Zc:wchar_t (the default) when + adding libraries. If incompatible, you'll typically get some + missing ostream '<<' operators or something similar in the stream + headers. + + 2. /Z7 (VC 7.0 compatibility symbols) gives us debug information + in the static libraries we build. Otherwise builds generate + vc100.pdb files all over the place which generally aren't useful. + DLL's and .EXEs are to get /Zi or /ZI with separate .PDB files. + These .PDB files can then be packaged up in symbol tarballs for + the crash dump analyzer or used in debugging. There are issues here + for VS 2013 (see below). + + + Mac Targets + + Fairly straightforward, optimization level is easily changed (may + be little or negative gain for -O3 and RelWithDebInfo should be + kicked up to 1 or 2. Boost debug symbols to dwarf-2 with a goal + of dwarf-2 in separate dSYM file when building .dylibs and + executables. + + ---------------------------------------------------------------------------- + Option Release RelWithDebInfo Debug + ---------------------------------------------------------------------------- + Strip Debug Symbols On " " + During Copy + + Generate Debug Syms On " " + + Level Debug Syms -gdwarf-2 " " + + Optimization -O3 -O0 -O0 + + PIC -fPIC -DPIC " " + + Defines LL_RELEASE=1 LL_RELEASE=1 n/a + LL_RELEASE_FOR_DOWNLOAD=1 n/a n/a + NDEBUG NDEBUG _DEBUG + n/a n/a LL_DEBUG=1 + n/a LL_RELEASE_WITH_\ n/a + DEBUG_INFO=1 + LL_DARWIN=1 " " + LL_OS_DRAGDROP_ENABLED=1 " " + CARES_STATICLIB " " + LIB_NDOF=1 " " + + ---------------------------------------------------------------------------- + Notes: + + 1. We’re also building dylibs in a somewhat unusual way. They’re + currently being generated with a link path of + ‘@executable_path/../Resources/’. If we were to follow + the recommendations in dyld’s man page, we’d instead reference + ‘@loader_path/’, use -rpath on the executable link + (pointing to the ‘Resources’ subdir of the main executable), and + be able to avoid some symlinking in the .app tree. + + 2. Use the -headerpad_max_install_names link option on all .dylibs. + + + Linux Targets + + Not much variety here. + + ---------------------------------------------------------------------------- + Option Release RelWithDebInfo Debug + ---------------------------------------------------------------------------- + Debug Level -g (-g0/1 better?) -g -g + During Copy + + Optimization -O2 -O0 -O0 + + PIC -fPIC " " + ---------------------------------------------------------------------------- + Notes: + + +Linking + + The library update work has generally moved in the direction of + preferring static libraries over dynamic (Qt4 being the notable + exception). It also mostly eliminated the extremely bad practice + of having multiple versions of a library built into an image. + + How bad was it? Very. Appalling. A nightmare. On Windows, at + least four versions of zlib (1.2.3, 1.2.5, 1.2.6, unknown), three + versions of Boost (1.45, 1.48, 1.52), two versions of OpenSSL + (0.9.8q, 1.0.0g) and three different builds of libexpat + 2.0.5/1.5.2 were used. Mac was worse with five builds or versions + of zlib, two of PCRE, two of c-ares, and three of OpenSSL. Linux + topped that by adding two builds of libpng. + + DO NOT ALLOW THIS TO HAPPEN AGAIN. It isn't enough to update a + library and then stuff a new triplet of S3 URLs into the viewer's + autobuild.xml. If you update a library you MUST: + + * Update the autobuild.xml of ALL consumers of the library. In + the case of zlib, that meant updating freetype, libpng, openssl, + libxml2, fontconfig, curl, Boost, SDL, llqtwebkit, google-mock and + colladadom. + + * Confirm by test and observation that the consumers actually use + your library rather than 'call home to mother' and find + system-supplied versions of your library. This may consist of + watching configuration scripts, probing with ldd/depends/otool, + pulling text out of binaries with 'strings'. The previously- + mentioned libraries all have a README.Linden file that gives + examples specific to the consumer library. + + * DO NOT RE-EXPORT LIBRARIES. Colladadom was the worst offender + of this rule. As a shared library, it was re-exporting part, but + not all, of Boost filesystem and system, some zlib, some PCRE, + some libxml2 and minizip. This meant that depending upon link- + time and run-time symbol resolution, data constructed with one + version of a library might be processed by a method built in a + second, incompatible version of the library. Switching colladadom + to a static library ended the re-export problem. + + * Preventing re-export is not sufficient. other libraries will + still be shipped as shared and they can still have Singleton and + Fragile Base Class issues. A DLL may be built with a static + archive of a library that has global data. That same static + archive might be linked into the application proper. An object + created with a method in the DLL may pass into a method in the + application where the archive's global data has a second instance + and no knowledge of the object. This is a failure due to an + assumption of Singleton global data which leads to some kind of + failure. This is the same effect as when, in Windows, both MSVCRT + and MSVCRTD get activated in a program. If you're lucky, some + asserts fail in that case having to do with file handle global + data. + + +Running + + Windows Debug Build. Seems to have been rendered nearly useless + by having the LL_CHECK_MEMORY define in llmemory.h calling + _CrtCheckMemory(). Viewer is almost useful disabling this in + llvoavatar code alone but not quite. + + +Futures + + Static Versus Dynamic Libraries + + One solution to the above linking problems is the use of static + libraries for everything. Single version, singleton instancing of + data, etc. But it's not the 1950's and we're not running our + applications on bare metal. Every platform comes with 100s of + libraries waiting to interfere with operations by breaking the + single-version and singleton-data assumption. + + Additionally, there are libraries that simply expect to be built + into shared libraries. Qt4 is one such. The version we're using + now, 4.7.1, is actually trying to disable both Webkit and plugin + modules because we're building it statically on Mac and Linux. + It's only because of configuration bugs that we're getting the + functionality out of it that we want. + + With enough libraries and a single, global namespace, eventually + there will be collisions and there may not be a warning. All it + takes is two programmers who thought that 'FILE * open_file(const + char *);' was a safe signature to use between compilation units in + their libraries and glorious debugging sessions are in your + future. Having debugged it, you will now become the proud owner + of a one-off version of one of those libraries that uses a special + symbol prefix which you will be maintaining forever. + + Lastly, we have some binary blobs that we must use as delivered. + Executables can be isolated at run-time if necessary. Shared + libraries are a different problem. They may bring their own + library dependencies that affect link- and run-time symbol + resolution and they'll impose that on us according to platform + rules. + + So, what to do? My natural bias for large software is to use + shared libraries for everything. It's a path to single-version + and singleton data and isolates namespaces and prevents + interactions. It also has some field servicability benefits if + you need to debug some bizarre problem a user has. + + But there's a local preference for static. Here, my + rules-of-thumb are: + + * Static library used by default. + + * Shared library where the library must be built shared. + + * Shared library if that is the only means to enforce the + single-version and singleton-data requirements. + + * Shared library *on a case-by-case basis* if the library is also + provided by the platform and some benefit is plausible. (An + example of this is freetype/fontconfig on Linux. The .so + versions we build with, and incompletely ship, are inferior in + behavior to the platform libraries. By being shared libraries, + the platform-supplied option is available to all Linux users.) + + In all cases, beware of cmake which appears to collapse and move + library references in links. This can drastically affect symbol + resolution when there are multiple sources for a symbol. + + General + + VS 2013. The /Z7 flag is rumored to be somewhat broken in 2013. + But it also sounds like there are explicit controls to name .PDB + files associated with static archives. That would make this an + ideal time to switch to /Zi or /ZI everywhere with explicit naming + and bring all the .PDBs together. + + The embedded browser technology (e.g. Qt4 with Webkit) is the + 800-pound gorilla in the viewer. When starting any major work, + decide what changes you need here as those changes will propagate + outwards forcing many other decisions (cf: /Zc:wchar_t- flag). + + Next library project. I'd recommend working on the related set of + libexpat, apr, aprutil, xmlrpc-epi. We know libexpat has some + updates that should improve stability. Libapr consumes it and it + could use some /Z7 flag work to get rid of some 1000's of PDB + warnings and improve our debug symbols. + + Miscellany to be sorted out: + + * The packaging of libfreetype and libfontconfig on Linux. + Determine what the right thing is, do it. + + * Maybe do something with ICU4C. Qt5 will require it and a number + of our packages can consume it typically replacing iconv or some + other library. But it is a huge bolus of static data. It can be + trimmed, but still. + + * Revisit openssl. Package as a shared library? Replace with + LibreSSL when available? Start using platform-supplied crypto? + diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index ff8cbedfd4..8cd1e3e63b 100755 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -216,7 +216,6 @@ elseif(DARWIN) libexpat.dylib libGLOD.dylib libhunspell-1.3.0.dylib - libllqtwebkit.dylib libndofdev.dylib ) @@ -258,6 +257,7 @@ elseif(LINUX) libdb-5.1.so libexpat.so libexpat.so.1 + libfreetype.so.6.6.2 libfreetype.so.6 libGLOD.so libgmodule-2.0.so @@ -268,6 +268,7 @@ elseif(LINUX) libuuid.so.16 libuuid.so.16.0.22 libfontconfig.so.1.8.0 + libfontconfig.so.1 ) if (USE_TCMALLOC) diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index d02160e439..93626f689f 100755 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -24,7 +24,18 @@ if (WINDOWS) optimized pcre ${BOOST_SYSTEM_LIBRARIES} ) -else (WINDOWS) +elseif (DARWIN) + set(LLPRIMITIVE_LIBRARIES + llprimitive + debug collada14dom-d + optimized collada14dom + minizip + xml2 + pcrecpp + pcre + iconv # Required by libxml2 + ) +elseif (LINUX) set(LLPRIMITIVE_LIBRARIES llprimitive debug collada14dom-d diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake index cab176a096..89f7a6197b 100755 --- a/indra/cmake/WebKitLibPlugin.cmake +++ b/indra/cmake/WebKitLibPlugin.cmake @@ -37,27 +37,32 @@ endif (STANDALONE) if (WINDOWS) set(WEBKIT_PLUGIN_LIBRARIES - debug llqtwebkitd - debug QtWebKitd4 - debug QtOpenGLd4 - debug QtNetworkd4 - debug QtGuid4 - debug QtCored4 - debug qtmaind - optimized llqtwebkit - optimized QtWebKit4 - optimized QtOpenGL4 - optimized QtNetwork4 - optimized QtGui4 - optimized QtCore4 - optimized qtmain + debug llqtwebkitd + debug QtWebKitd4 + debug QtOpenGLd4 + debug QtNetworkd4 + debug QtGuid4 + debug QtCored4 + debug qtmaind + optimized llqtwebkit + optimized QtWebKit4 + optimized QtOpenGL4 + optimized QtNetwork4 + optimized QtGui4 + optimized QtCore4 + optimized qtmain ) elseif (DARWIN) set(WEBKIT_PLUGIN_LIBRARIES - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib - debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib - ) + ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.a + ${ARCH_PREBUILT_DIRS_RELEASE}/libQtWebKit.4.dylib + ${ARCH_PREBUILT_DIRS_RELEASE}/libQtOpenGL.4.dylib + ${ARCH_PREBUILT_DIRS_RELEASE}/libQtNetwork.4.dylib + ${ARCH_PREBUILT_DIRS_RELEASE}/libQtGui.4.dylib + ${ARCH_PREBUILT_DIRS_RELEASE}/libQtCore.4.dylib + ) elseif (LINUX) + # *HUH: What does this do? set(WEBKIT_PLUGIN_LIBRARIES ${LLQTWEBKIT_LIBRARY} ${QT_LIBRARIES} ${QT_PLUGIN_LIBRARIES}) set(WEBKIT_PLUGIN_LIBRARIES llqtwebkit @@ -72,7 +77,7 @@ elseif (LINUX) ${OPENSSL_LIBRARIES} QtGui QtCore - jscore +# jscore # qgif # qjpeg # jpeg -- cgit v1.2.3 From 2ccbef39a69a0b7aeacff7d99eaa757be51d6a77 Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Thu, 5 Jun 2014 18:37:24 -0400 Subject: All: Update openssl to 1.0.1h/290662, curl to 290664, llqtwebkit to 290663. Linux: Include libQtXml and libQtSvg in manifest for libqsvg.so. More documentation thoughts for library package structure. --- indra/cmake/00-COMPILE-LINK-RUN.txt | 46 +++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/00-COMPILE-LINK-RUN.txt b/indra/cmake/00-COMPILE-LINK-RUN.txt index 8f72448fe9..d08cc2dc0c 100644 --- a/indra/cmake/00-COMPILE-LINK-RUN.txt +++ b/indra/cmake/00-COMPILE-LINK-RUN.txt @@ -10,7 +10,7 @@ Introduction with hints and rules about doing things well. What's presented is a guideline only. Not all suggestions are hard rules and you'll find exceptions all over. Some exceptions arise from solid - reasining, others may be legacy that hasn't been re-examined. + reasoning, others may be legacy that hasn't been re-examined. Use good engineering judgement when applying this information. @@ -244,7 +244,7 @@ Futures So, what to do? My natural bias for large software is to use shared libraries for everything. It's a path to single-version and singleton data and isolates namespaces and prevents - interactions. It also has some field servicability benefits if + interactions. It also has some field serviceability benefits if you need to debug some bizarre problem a user has. But there's a local preference for static. Here, my @@ -281,6 +281,48 @@ Futures decide what changes you need here as those changes will propagate outwards forcing many other decisions (cf: /Zc:wchar_t- flag). + The current package structure (./include, ./lib/release, + ./lib/debug, etc.) really works against the conventions used by + configure-like programs. I wasted a lot of time getting each + library to work with our structure without having to go back to + automake/autoconf. For Linux and Mac (and even for Windows), a + structure like the following where each grouping is optional would + probably save some work: + + ./debug/bin + /include + /lib + ./debug/shared/bin + /include + /lib + ./debug/static/bin + /include + /lib + ./release/bin + /include + /lib + ... + + In zlib and openssl and in a few of the libraries that consume + them, I experimented with packaging both static and shared + libraries and then having the consumer library move the unwanted + pieces out of the way to use the library type of choice (see + restore_dylibs() and restore_sos() functions). It was a bit fussy + and simplicity and clarity are the keys to maintaining libraries + in the future. + + But it did suggest another approach. The idea is that every build + pre-stages inputs. Before anything is built, package pieces are + copied or symlinked from the 'stage/packages' area to the + 'stage/input' area. Builds then proceed with a single set of + -I/-L options for the dependencies. And products are built and + installed in a similar output staging structure for the next + consumer: + + stage/packages//[above structure] + stage/input/{bin,include,lib} + stage//[above structure] + Next library project. I'd recommend working on the related set of libexpat, apr, aprutil, xmlrpc-epi. We know libexpat has some updates that should improve stability. Libapr consumes it and it -- cgit v1.2.3