diff options
| author | palmer@eniac54.lindenlab.com <palmer@eniac54.lindenlab.com> | 2009-07-30 18:52:34 -0700 | 
|---|---|---|
| committer | palmer@eniac54.lindenlab.com <palmer@eniac54.lindenlab.com> | 2009-07-30 18:52:34 -0700 | 
| commit | 1af41b3ba733938541d7cc92ae56dd883638e32f (patch) | |
| tree | 34e20eebc9c5e28a58dfc7b45823f8156e1f2edf | |
| parent | 1e1a38d5745a680c712be9bcc088a75f6eafa7da (diff) | |
Fixes to build on linux for DEV-35401.
Moves libllcommon.so to a staging dir for unit tests to work
and gets rid of LL_COMMON_API in forward declarations
| -rw-r--r-- | indra/cmake/LLAddBuildTest.cmake | 2 | ||||
| -rw-r--r-- | indra/cmake/Linking.cmake | 1 | ||||
| -rw-r--r-- | indra/llcommon/CMakeLists.txt | 15 | ||||
| -rw-r--r-- | indra/llcommon/llapp.h | 2 | ||||
| -rw-r--r-- | indra/llcommon/llapr.h | 4 | ||||
| -rw-r--r-- | indra/llcommon/llerror.h | 2 | ||||
| -rw-r--r-- | indra/llcommon/llevent.h | 10 | ||||
| -rw-r--r-- | indra/llcommon/llevents.h | 2 | ||||
| -rw-r--r-- | indra/llcommon/lllog.h | 2 | ||||
| -rw-r--r-- | indra/llcommon/llmetrics.h | 2 | ||||
| -rw-r--r-- | indra/llcommon/llpreprocessor.h | 4 | ||||
| -rw-r--r-- | indra/llcommon/llrun.h | 2 | ||||
| -rw-r--r-- | indra/llcommon/llsdutil.h | 2 | ||||
| -rw-r--r-- | indra/llcommon/llstat.h | 2 | ||||
| -rw-r--r-- | indra/llcommon/llstring.h | 8 | ||||
| -rw-r--r-- | indra/llcommon/llthread.h | 6 | ||||
| -rw-r--r-- | indra/llcommon/lluri.h | 6 | ||||
| -rw-r--r-- | indra/llcommon/metaclass.h | 6 | ||||
| -rw-r--r-- | indra/llcommon/metaproperty.h | 4 | ||||
| -rw-r--r-- | indra/llcommon/reflective.h | 2 | 
20 files changed, 51 insertions, 33 deletions
| diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index aa77bbac65..013cc5109f 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -123,7 +123,7 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)      IF(WINDOWS)        set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR})      ELSE(WINDOWS) -      set(LD_LIBRARY_PATH ${ARCH_PREBUILT_DIRS}:/usr/lib) +      set(LD_LIBRARY_PATH ${ARCH_PREBUILT_DIRS}:${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}:/usr/lib)      ENDIF(WINDOWS)      IF(LL_TEST_VERBOSE) diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index 578edf9989..30b3cc9994 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -14,6 +14,7 @@ if (NOT STANDALONE)      endif (VIEWER)      set(ARCH_PREBUILT_DIRS_RELEASE ${ARCH_PREBUILT_DIRS})      set(ARCH_PREBUILT_DIRS_DEBUG ${ARCH_PREBUILT_DIRS}) +    set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged .sos")    elseif (DARWIN)      set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release)      set(ARCH_PREBUILT_DIRS ${ARCH_PREBUILT_DIRS_RELEASE}) diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index c46e2583f1..2ecd4ee5d4 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -245,6 +245,20 @@ if(LLCOMMON_LINK_SHARED)          # Also this directory is shared with RunBuildTest.cmake, y'know, for the tests.          set_target_properties(llcommon PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR})      endif(SHARED_LIB_STAGING_DIR) + +    get_target_property(LLCOMMON_PATH llcommon LOCATION) +    get_filename_component(LLCOMMON_FILE ${LLCOMMON_PATH} NAME) +    add_custom_command( +        TARGET llcommon POST_BUILD +        COMMAND ${CMAKE_COMMAND} +        ARGS +          -E +          copy_if_different +          ${LLCOMMON_FILE} +          ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/${LLCOMMON_FILE} +        COMMENT "Copying llcommon to the staging folder." +        ) +  else(LLCOMMON_LINK_SHARED)      add_library (llcommon ${llcommon_SOURCE_FILES})  endif(LLCOMMON_LINK_SHARED) @@ -263,6 +277,7 @@ target_link_libraries(  add_dependencies(llcommon stage_third_party_libs) +  include(LLAddBuildTest)  SET(llcommon_TEST_SOURCE_FILES    # WARNING: Please don't write tests against LLCommon or LLMath until this issue is resolved: https://jira.lindenlab.com/jira/browse/DEV-29456 diff --git a/indra/llcommon/llapp.h b/indra/llcommon/llapp.h index cc60ba0b80..35f6f7028d 100644 --- a/indra/llcommon/llapp.h +++ b/indra/llcommon/llapp.h @@ -61,7 +61,7 @@ public:  };  #endif -class LLApp +class LL_COMMON_API LLApp  {  	friend class LLErrorThread;  public: diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h index f968eabc18..0898aeec47 100644 --- a/indra/llcommon/llapr.h +++ b/indra/llcommon/llapr.h @@ -167,8 +167,8 @@ private:  	apr_uint32_t mData;
  };
 -typedef LL_COMMON_API LLAtomic32<U32> LLAtomicU32;
 -typedef LL_COMMON_API LLAtomic32<S32> LLAtomicS32;
 +typedef LLAtomic32<U32> LLAtomicU32;
 +typedef LLAtomic32<S32> LLAtomicS32;
  // File IO convenience functions.
  // Returns NULL if the file fails to openm sets *sizep to file size of not NULL
 diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h index 6ccdf2174b..4f68fb9f76 100644 --- a/indra/llcommon/llerror.h +++ b/indra/llcommon/llerror.h @@ -129,7 +129,7 @@ namespace LLError  		They are not intended for general use.  	*/ -	class LL_COMMON_API CallSite; +	class CallSite;  	class LL_COMMON_API Log  	{ diff --git a/indra/llcommon/llevent.h b/indra/llcommon/llevent.h index 192cb84fea..0ea7cf4ae8 100644 --- a/indra/llcommon/llevent.h +++ b/indra/llcommon/llevent.h @@ -41,10 +41,10 @@  namespace LLOldEvents  { -class LL_COMMON_API LLEventListener; -class LL_COMMON_API LLEvent; -class LL_COMMON_API LLEventDispatcher; -class LL_COMMON_API LLObservable; +class LLEventListener; +class LLEvent; +class LLEventDispatcher; +class LLObservable;  // Abstract event. All events derive from LLEvent  class LL_COMMON_API LLEvent : public LLThreadSafeRefCount @@ -104,7 +104,7 @@ protected:  	std::vector<LLEventDispatcher *> mDispatchers;  }; -class LL_COMMON_API LLObservable; // defined below +class LLObservable; // defined below  // A structure which stores a Listener and its metadata  struct LLListenerEntry diff --git a/indra/llcommon/llevents.h b/indra/llcommon/llevents.h index 8ebffc008f..6df418fe5a 100644 --- a/indra/llcommon/llevents.h +++ b/indra/llcommon/llevents.h @@ -172,7 +172,7 @@ private:  /*****************************************************************************
  *   LLEventPumps
  *****************************************************************************/
 -class LL_COMMON_API LLEventPump;
 +class LLEventPump;
  /**
   * LLEventPumps is a Singleton manager through which one typically accesses
 diff --git a/indra/llcommon/lllog.h b/indra/llcommon/lllog.h index b0ec570c01..4b6777bb9c 100644 --- a/indra/llcommon/lllog.h +++ b/indra/llcommon/lllog.h @@ -39,7 +39,7 @@  class LLLogImpl;  class LLApp; -class LL_COMMON_API LLSD; +class LLSD;  class LL_COMMON_API LLLog  { diff --git a/indra/llcommon/llmetrics.h b/indra/llcommon/llmetrics.h index 11e10a5a2e..f6f49eb456 100644 --- a/indra/llcommon/llmetrics.h +++ b/indra/llcommon/llmetrics.h @@ -36,7 +36,7 @@  #define LL_LLMETRICS_H  class LLMetricsImpl; -class LL_COMMON_API LLSD; +class LLSD;  class LL_COMMON_API LLMetrics  { diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h index ed6ca9a25f..671e85b16f 100644 --- a/indra/llcommon/llpreprocessor.h +++ b/indra/llcommon/llpreprocessor.h @@ -138,12 +138,14 @@  #if LL_WINDOWS
  #define LL_DLLEXPORT __declspec(dllexport)
  #define LL_DLLIMPORT __declspec(dllimport)
 +#elif LL_LINUX
 +#define LL_DLLEXPORT __attribute__ ((visibility("default")))
 +#define LL_DLLIMPORT
  #else
  #define LL_DLLEXPORT
  #define LL_DLLIMPORT
  #endif // LL_WINDOWS
 -
  #if LL_COMMON_LINK_SHARED
  # if LL_COMMON_BUILD
  #   define LL_COMMON_API LL_DLLEXPORT
 diff --git a/indra/llcommon/llrun.h b/indra/llcommon/llrun.h index afe65fd734..1fc9925df9 100644 --- a/indra/llcommon/llrun.h +++ b/indra/llcommon/llrun.h @@ -38,7 +38,7 @@  #include <vector>  #include <boost/shared_ptr.hpp> -class LL_COMMON_API LLRunnable; +class LLRunnable;  /**    * @class LLRunner diff --git a/indra/llcommon/llsdutil.h b/indra/llcommon/llsdutil.h index 8cb459d81b..6a6c396687 100644 --- a/indra/llcommon/llsdutil.h +++ b/indra/llcommon/llsdutil.h @@ -35,7 +35,7 @@  #ifndef LL_LLSDUTIL_H  #define LL_LLSDUTIL_H -class LL_COMMON_API LLSD; +class LLSD;  // U32  LL_COMMON_API LLSD ll_sd_from_U32(const U32); diff --git a/indra/llcommon/llstat.h b/indra/llcommon/llstat.h index 5d77215beb..64ea8e5b40 100644 --- a/indra/llcommon/llstat.h +++ b/indra/llcommon/llstat.h @@ -40,7 +40,7 @@  #include "llframetimer.h"  #include "llfile.h" -class	LL_COMMON_API LLSD; +class	LLSD;  // Set this if longer stats are needed  #define ENABLE_LONG_TIME_STATS	0 diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h index eb36dafee3..24a8d49a54 100644 --- a/indra/llcommon/llstring.h +++ b/indra/llcommon/llstring.h @@ -345,9 +345,9 @@ public:  template<class T> std::basic_string<T> LLStringUtilBase<T>::null;
  template<class T> std::string LLStringUtilBase<T>::sLocale;
 -typedef LL_COMMON_API LLStringUtilBase<char> LLStringUtil;
 -typedef LL_COMMON_API LLStringUtilBase<llwchar> LLWStringUtil;
 -typedef LL_COMMON_API std::basic_string<llwchar> LLWString;
 +typedef LLStringUtilBase<char> LLStringUtil;
 +typedef LLStringUtilBase<llwchar> LLWStringUtil;
 +typedef std::basic_string<llwchar> LLWString;
  //@ Use this where we want to disallow input in the form of "foo"
  //  This is used to catch places where english text is embedded in the code
 @@ -419,7 +419,7 @@ LL_COMMON_API std::string rawstr_to_utf8(const std::string& raw);  //
  // We should never use UTF16 except when communicating with Win32!
  //
 -typedef LL_COMMON_API std::basic_string<U16> llutf16string;
 +typedef std::basic_string<U16> llutf16string;
  LL_COMMON_API LLWString utf16str_to_wstring(const llutf16string &utf16str, S32 len);
  LL_COMMON_API LLWString utf16str_to_wstring(const llutf16string &utf16str);
 diff --git a/indra/llcommon/llthread.h b/indra/llcommon/llthread.h index e6bf95aaa9..c3d7650bd9 100644 --- a/indra/llcommon/llthread.h +++ b/indra/llcommon/llthread.h @@ -38,9 +38,9 @@  #include "apr_thread_cond.h" -class LL_COMMON_API LLThread; -class LL_COMMON_API LLMutex; -class LL_COMMON_API LLCondition; +class LLThread; +class LLMutex; +class LLCondition;  class LL_COMMON_API LLThread  { diff --git a/indra/llcommon/lluri.h b/indra/llcommon/lluri.h index 33fd88b497..eb5c5203eb 100644 --- a/indra/llcommon/lluri.h +++ b/indra/llcommon/lluri.h @@ -37,9 +37,9 @@  #include <string> -class LL_COMMON_API LLSD; -class LL_COMMON_API LLUUID; -class LL_COMMON_API LLApp; +class LLSD; +class LLUUID; +class LLApp;  /**    * diff --git a/indra/llcommon/metaclass.h b/indra/llcommon/metaclass.h index 8b93e0d6d5..f38bcd2d57 100644 --- a/indra/llcommon/metaclass.h +++ b/indra/llcommon/metaclass.h @@ -40,9 +40,9 @@  #include "stdtypes.h" -class LL_COMMON_API LLReflective; -class LL_COMMON_API LLMetaProperty; -class LL_COMMON_API LLMetaMethod; +class LLReflective; +class LLMetaProperty; +class LLMetaMethod;  class LL_COMMON_API LLMetaClass  {  public: diff --git a/indra/llcommon/metaproperty.h b/indra/llcommon/metaproperty.h index 96e1b314a4..6c016c56dd 100644 --- a/indra/llcommon/metaproperty.h +++ b/indra/llcommon/metaproperty.h @@ -39,8 +39,8 @@  #include "llsd.h"  #include "reflective.h" -class LL_COMMON_API LLMetaClass; -class LL_COMMON_API LLReflective; +class LLMetaClass; +class LLReflective;  class LL_COMMON_API LLMetaProperty  {  public: diff --git a/indra/llcommon/reflective.h b/indra/llcommon/reflective.h index 541712538b..a13537681d 100644 --- a/indra/llcommon/reflective.h +++ b/indra/llcommon/reflective.h @@ -35,7 +35,7 @@  #ifndef LL_REFLECTIVE_H  #define LL_REFLECTIVE_H -class LL_COMMON_API LLMetaClass; +class LLMetaClass;  class LL_COMMON_API LLReflective  {  public: | 
