From f348cf011d160868ddd7c0caa47b208604adadaf Mon Sep 17 00:00:00 2001
From: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: Fri, 28 Mar 2014 18:00:28 -0500
Subject: Export elf metadata extraction methods and header Properly embed
 versioning information into major libraries

---
 tdeio/tdeio/CMakeLists.txt |  2 +-
 tdeio/tdeio/tdelficon.h    |  8 +++++---
 tdelfeditor/CMakeLists.txt | 27 +++++++++++++++++++++++----
 3 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/tdeio/tdeio/CMakeLists.txt b/tdeio/tdeio/CMakeLists.txt
index e2b96ebb1..5f04568c5 100644
--- a/tdeio/tdeio/CMakeLists.txt
+++ b/tdeio/tdeio/CMakeLists.txt
@@ -61,7 +61,7 @@ install( FILES
     tcpslavebase.h forwardingslavebase.h observer.h
     chmodjob.h kmdbase.h authinfo.h ioslave_defaults.h
     http_slave_defaults.h previewjob.h thumbcreator.h
-    metainfojob.h davjob.h renamedlg.h skipdlg.h
+    metainfojob.h davjob.h renamedlg.h skipdlg.h tdelficon.h
     ${CMAKE_CURRENT_BINARY_DIR}/uiserver_stub.h
   DESTINATION ${INCLUDE_INSTALL_DIR}/tdeio )
 
diff --git a/tdeio/tdeio/tdelficon.h b/tdeio/tdeio/tdelficon.h
index 37b629f61..fc3b1beee 100644
--- a/tdeio/tdeio/tdelficon.h
+++ b/tdeio/tdeio/tdelficon.h
@@ -1,3 +1,5 @@
+#include <tdelibs_export.h>
+
 #include <alloca.h>
 #include <stdint.h>
 #include <cstdlib>
@@ -49,6 +51,6 @@ extern "C" {
   // END HACK
 }
 
-int get_iconlist(libr_file *file_handle, iconlist *icons);
-iconentry *get_nexticon(iconlist *icons, iconentry *last_entry);
-TQString elf_get_resource(libr_file *handle, char *section_name);
+TDEIO_EXPORT int get_iconlist(libr_file *file_handle, iconlist *icons);
+TDEIO_EXPORT iconentry *get_nexticon(iconlist *icons, iconentry *last_entry);
+TDEIO_EXPORT TQString elf_get_resource(libr_file *handle, char *section_name);
diff --git a/tdelfeditor/CMakeLists.txt b/tdelfeditor/CMakeLists.txt
index ebc99ab62..46e6215f6 100644
--- a/tdelfeditor/CMakeLists.txt
+++ b/tdelfeditor/CMakeLists.txt
@@ -44,11 +44,12 @@ if( EXISTS "${CMAKE_SOURCE_DIR}/.tdescmrevision" )
 endif( EXISTS "${CMAKE_SOURCE_DIR}/.tdescmrevision" )
 
 tde_curdatetime( _datetime )
-set( ELF_EMBEDDING_METADATA "\"\" \"\" \"\" \"\" \"\" \"Trinity Desktop Environment\" \"\" \"\" \"${_datetime}\" \"x-sharedlib\" \"${TDE_SCM_MODULE_NAME}\" \"${TDE_SCM_MODULE_REVISION}\" \"\"" )
-separate_arguments( ELF_EMBEDDING_METADATA )
 
 if( NOT "${TDE_SCM_MODULE_NAME}" STREQUAL "" )
   if( NOT "${TDE_SCM_MODULE_REVISION}" STREQUAL "" )
+    get_target_property( _version DCOP-shared VERSION )
+    set( ELF_EMBEDDING_METADATA "\"DCOP-shared\" \"\" \"\" \"\" \"\" \"Trinity Desktop Environment\" \"\" \"${_version}\" \"${_datetime}\" \"x-sharedlib\" \"${TDE_SCM_MODULE_NAME}\" \"${TDE_SCM_MODULE_REVISION}\" \"\"" )
+    separate_arguments( ELF_EMBEDDING_METADATA )
     add_custom_target(
       # embed name and metadata
       update_libDCOP_metadata ALL
@@ -59,6 +60,9 @@ if( NOT "${TDE_SCM_MODULE_NAME}" STREQUAL "" )
       COMMENT "Storing SCM metadata in dcop/libDCOP.so"
     )
 
+    get_target_property( _version tdecore-shared VERSION )
+    set( ELF_EMBEDDING_METADATA "\"tdecore-shared\" \"\" \"\" \"\" \"\" \"Trinity Desktop Environment\" \"\" \"${_version}\" \"${_datetime}\" \"x-sharedlib\" \"${TDE_SCM_MODULE_NAME}\" \"${TDE_SCM_MODULE_REVISION}\" \"\"" )
+    separate_arguments( ELF_EMBEDDING_METADATA )
     add_custom_target(
       # embed name and metadata
       update_libtdecore_metadata ALL
@@ -69,6 +73,9 @@ if( NOT "${TDE_SCM_MODULE_NAME}" STREQUAL "" )
       COMMENT "Storing SCM metadata in tdecore/libtdecore.so"
     )
 
+    get_target_property( _version tdeio-shared VERSION )
+    set( ELF_EMBEDDING_METADATA "\"tdeio-shared\" \"\" \"\" \"\" \"\" \"Trinity Desktop Environment\" \"\" \"${_version}\" \"${_datetime}\" \"x-sharedlib\" \"${TDE_SCM_MODULE_NAME}\" \"${TDE_SCM_MODULE_REVISION}\" \"\"" )
+    separate_arguments( ELF_EMBEDDING_METADATA )
     add_custom_target(
       # embed name and metadata
       update_libtdeio_metadata ALL
@@ -79,6 +86,9 @@ if( NOT "${TDE_SCM_MODULE_NAME}" STREQUAL "" )
       COMMENT "Storing SCM metadata in tdeui/libtdeio.so"
     )
 
+    get_target_property( _version tdeui-shared VERSION )
+    set( ELF_EMBEDDING_METADATA "\"tdeui-shared\" \"\" \"\" \"\" \"\" \"Trinity Desktop Environment\" \"\" \"${_version}\" \"${_datetime}\" \"x-sharedlib\" \"${TDE_SCM_MODULE_NAME}\" \"${TDE_SCM_MODULE_REVISION}\" \"\"" )
+    separate_arguments( ELF_EMBEDDING_METADATA )
     add_custom_target(
       # embed name and metadata
       update_libtdeui_metadata ALL
@@ -89,6 +99,9 @@ if( NOT "${TDE_SCM_MODULE_NAME}" STREQUAL "" )
       COMMENT "Storing SCM metadata in tdeui/libtdeui.so"
     )
 
+    get_target_property( _version tdeutils-shared VERSION )
+    set( ELF_EMBEDDING_METADATA "\"tdeutils-shared\" \"\" \"\" \"\" \"\" \"Trinity Desktop Environment\" \"\" \"${_version}\" \"${_datetime}\" \"x-sharedlib\" \"${TDE_SCM_MODULE_NAME}\" \"${TDE_SCM_MODULE_REVISION}\" \"\"" )
+    separate_arguments( ELF_EMBEDDING_METADATA )
     add_custom_target(
       # embed name and metadata
       update_libtdeutils_metadata ALL
@@ -99,6 +112,9 @@ if( NOT "${TDE_SCM_MODULE_NAME}" STREQUAL "" )
       COMMENT "Storing SCM metadata in tdeutils/libtdeutils.so"
     )
 
+    get_target_property( _version tdeprint-shared VERSION )
+    set( ELF_EMBEDDING_METADATA "\"tdeprint-shared\" \"\" \"\" \"\" \"\" \"Trinity Desktop Environment\" \"\" \"${_version}\" \"${_datetime}\" \"x-sharedlib\" \"${TDE_SCM_MODULE_NAME}\" \"${TDE_SCM_MODULE_REVISION}\" \"\"" )
+    separate_arguments( ELF_EMBEDDING_METADATA )
     add_custom_target(
       # embed name and metadata
       update_libtdeprint_metadata ALL
@@ -109,6 +125,9 @@ if( NOT "${TDE_SCM_MODULE_NAME}" STREQUAL "" )
       COMMENT "Storing SCM metadata in tdeprint/libtdeprint.so"
     )
 
+    get_target_property( _version tdehtml-shared VERSION )
+    set( ELF_EMBEDDING_METADATA "\"tdehtml-shared\" \"\" \"\" \"\" \"\" \"Trinity Desktop Environment\" \"\" \"${_version}\" \"${_datetime}\" \"x-sharedlib\" \"${TDE_SCM_MODULE_NAME}\" \"${TDE_SCM_MODULE_REVISION}\" \"\"" )
+    separate_arguments( ELF_EMBEDDING_METADATA )
     add_custom_target(
       # embed name and metadata
       update_libtdehtml_metadata ALL
@@ -118,5 +137,5 @@ if( NOT "${TDE_SCM_MODULE_NAME}" STREQUAL "" )
       DEPENDS tdehtml-shared
       COMMENT "Storing SCM metadata in tdehtml/libtdehtml.so"
     )
-  endif( NOT "${TDE_SCM_MODULE_REVISION}" STREQUAL "" )
-endif( NOT "${TDE_SCM_MODULE_NAME}" STREQUAL "" )
\ No newline at end of file
+  endif( )
+endif( )
\ No newline at end of file
-- 
cgit v1.2.3

