[packages/libobjc2] - up to 1.7 - added link patch (link libobjcxx with libobjc)

qboosh qboosh at pld-linux.org
Sun Sep 22 09:36:31 CEST 2013


commit c075f6dc846de197694335bca9ad2ca066fc8c32
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Sep 22 09:36:55 2013 +0200

    - up to 1.7
    - added link patch (link libobjcxx with libobjc)

 libobjc2-link.patch | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 libobjc2.spec       |  97 +++++++++++++++++++++++++++---------------
 2 files changed, 182 insertions(+), 34 deletions(-)
---
diff --git a/libobjc2.spec b/libobjc2.spec
index 4a16b08..e6eb3f2 100644
--- a/libobjc2.spec
+++ b/libobjc2.spec
@@ -1,72 +1,101 @@
 # TODO: make gcc-objc separate libobjc
+# - separate libobjcxx? (requires libstdc++ while libobjc doesn't)
+# - use -DLIBOBJC_NAME=objc2 to allow parallel installation with gcc's libobjc?
 #
 Summary:	GNUStep runtime for Objective C
+Summary(pl.UTF-8):	Biblioteka uruchomieniowa dla Objective C z projektu GNUstep
 Name:		libobjc2
-Version:	1.2
+Version:	1.7
 Release:	0.1
 License:	MIT
-Group:		Development/Libraries
+Group:		Libraries
+Source0:	http://download.gna.org/gnustep/%{name}-%{version}.tar.bz2
+# Source0-md5:	7bd9f154ed2f78b3cf55ede7dea536bd
+Patch0:		%{name}-link.patch
 URL:		http://www.gnustep.org/
-Source0:	http://download.gna.org/gnustep/libobjc2-1.2.tar.bz2
-# Source0-md5:	ef692c6edfdeba360fe714d589552efc
+BuildRequires:	clang
+BuildRequires:	cmake >= 2.8
 BuildRequires:	gnustep-make
+BuildRequires:	libstdc++-devel
+BuildRequires:	pkgconfig
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
-This is the 1.2 release of the GNUstep Objective-C runtime (a.k.a.
-libobjc2).  This runtime was designed to support the features of Objective-C 2
-for use with GNUstep and other Objective-C programs.  This release contains
-several bug fixes, and is tested with the current GNUstep trunk, so will be
-compatible with the upcoming GNUstep release.
+This is the GNUstep Objective-C runtime (a.k.a. libobjc2). This
+runtime was designed to support the features of Objective-C 2 for use
+with GNUstep and other Objective-C programs.
+
+%description -l pl.UTF-8
+Ten pakiet zawiera bibliotekę uruchomieniową Objective-C z projektu
+GNUstep (znaną także jako libobjc2). Ta biblioteka została
+zaprojektowana, aby wspierać cechy języka Objective-C 2, w celu
+używania w GNUstepie i innych programach w Objective-C.
 
 %package devel
-Summary:	Development tools for programs using libobjc2
+Summary:	Development files for programs using libobjc2
+Summary(pl.UTF-8):	Pliki programistyczne do biblioteki libobjc2
 Group:		Development/Libraries
 Requires:	%{name} = %{version}-%{release}
 
 %description devel
-This is the 1.2 release of the GNUstep Objective-C runtime (a.k.a.
-libobjc2).  This runtime was designed to support the features of Objective-C 2
-for use with GNUstep and other Objective-C programs.  This release contains
-several bug fixes, and is tested with the current GNUstep trunk, so will be
-compatible with the upcoming GNUstep release.
+This package contains the header files needed for developing programs
+using the libobjc2 library.
+
+%description devel -l pl.UTF-8
+Ten pakiet zawiera pliki nagłówkowe niezbędne do tworzenia programów
+wykorzystujących bibliotekę libobjc2.
+
+%package static
+Summary:	Static libobjc2 library
+Summary(pl.UTF-8):	Statyczna biblioteka libobjc2
+Group:		Development/Libraries
+Requires:	%{name}-devel = %{version}-%{release}
 
-This package contains the header files and libraries needed for
-developing programs using the libobjc2 library.
+%description static
+Static libobjc2 library.
+
+%description static -l pl.UTF-8
+Statyczna biblioteka libobjc2.
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
-export GNUSTEP_MAKEFILES=%{_datadir}/GNUstep/Makefiles
-export GNUSTEP_FLATTENED=yes
-%{__make} -j1 \
-	OPTFLAG="%{rpmcflags}" \
-	messages=yes
+install -d build
+cd build
+%cmake .. \
+	-DBUILD_STATIC_LIBOBJC=ON \
+	-DCMAKE_C_COMPILER="clang" \
+	-DCMAKE_CXX_COMPILER="clang++" \
+	-DGNUSTEP_INSTALL_TYPE=SYSTEM
+
+%{__make}
 
 %install
 rm -rf $RPM_BUILD_ROOT
-export GNUSTEP_MAKEFILES=%{_datadir}/GNUstep/Makefiles
-export GNUSTEP_FLATTENED=yes
 
-%{__make} -j1 install \
-	GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \
+%{__make} -C build install \
 	DESTDIR=$RPM_BUILD_ROOT 
 
-#%find_lang %{name}
-
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
 
 %files
 %defattr(644,root,root,755)
-%doc README 
-%attr(755,root,root) %{_libdir}/libobjc.so.*
+%doc ANNOUNCE* API COPYING README
+%attr(755,root,root) %{_libdir}/libobjc.so.*.*
+%attr(755,root,root) %{_libdir}/libobjcxx.so.*.*
 
 %files devel
 %defattr(644,root,root,755)
-%{_includedir}/objc/*.h
-%{_libdir}/libobjc.so
+%attr(755,root,root) %{_libdir}/libobjc.so
+%attr(755,root,root) %{_libdir}/libobjcxx.so
+%{_includedir}/objc
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libobjc.a
diff --git a/libobjc2-link.patch b/libobjc2-link.patch
new file mode 100644
index 0000000..5021bbb
--- /dev/null
+++ b/libobjc2-link.patch
@@ -0,0 +1,119 @@
+--- libobjc2-1.7/CMakeLists.txt.orig	2013-06-27 13:30:41.000000000 +0200
++++ libobjc2-1.7/CMakeLists.txt	2013-09-22 08:12:30.526420422 +0200
+@@ -170,6 +170,50 @@
+ 	COMPILE_FLAGS "${CMAKE_OBJC_FLAGS}"
+ )
+ 
++
++
++# Currently, we actually need pthreads, but we should use the platform's native
++# threading implementation (we do for everything except thread-local storage)
++set(CMAKE_THREAD_PREFER_PTHREAD)
++include(FindThreads)
++set(objc_LINK_FLAGS "${objc_LINK_FLAGS} ${CMAKE_THREAD_LIBS_INIT}")
++
++
++
++add_library(objc SHARED ${libobjc_C_SRCS} ${libobjc_ASM_SRCS} ${libobjc_OBJC_SRCS} ${libobjc_CXX_SRCS})
++
++set_target_properties(objc PROPERTIES
++	LINKER_LANGUAGE C
++	SOVERSION ${libobjc_VERSION}
++	OUTPUT_NAME ${LIBOBJC_NAME}
++	LINK_FLAGS "${objc_LINK_FLAGS}"
++	)
++
++
++set(BUILD_STATIC_LIBOBJC false CACHE BOOL
++	"Build the static version of libobjc")
++if (BUILD_STATIC_LIBOBJC)
++	add_library(objc-static STATIC ${libobjc_C_SRCS} ${libobjc_ASM_SRCS} ${libobjc_OBJC_SRCS} ${libobjc_CXX_SRCS})
++	set_target_properties(objc-static PROPERTIES
++		POSITION_INDEPENDENT_CODE true
++		OUTPUT_NAME ${LIBOBJC_NAME})
++	list(APPEND INSTALL_TARGETS objc-static)
++endif ()
++
++
++
++# Explicitly link the C++ runtime and libgc if we are compiling with gc support.
++target_link_libraries(objc ${CXX_RUNTIME})
++if (LIBGC)
++	target_link_libraries(objc ${LIBGC})
++endif ()
++
++# Link libdispatch if available (we'll miss symbols for toydispatch otherwise)
++find_library(LIBDISPATCH dispatch)
++if (LIBDISPATCH)
++	target_link_libraries(objc ${LIBDISPATCH})
++endif ()
++
+ #
+ # C++ Runtime interaction
+ #
+@@ -206,7 +250,7 @@
+ 				LINKER_LANGUAGE C
+ 				SOVERSION ${libobjc_VERSION}
+ 				)
+-			target_link_libraries(objcxx ${CXX_RUNTIME})
++			target_link_libraries(objcxx objc ${CXX_RUNTIME})
+ 			set(CXX_RUNTIME "")
+ 			list(APPEND INSTALL_TARGETS objcxx)
+ 		else ()
+@@ -222,55 +266,12 @@
+ 			LINKER_LANGUAGE C
+ 			SOVERSION ${libobjc_VERSION}
+ 			)
++		target_link_libraries(objcxx objc)
+ 		set(CXX_RUNTIME "")
+ 		list(APPEND INSTALL_TARGETS objcxx)
+ 	endif ()
+ endif (ENABLE_OBJCXX)
+ 
+-
+-
+-# Currently, we actually need pthreads, but we should use the platform's native
+-# threading implementation (we do for everything except thread-local storage)
+-set(CMAKE_THREAD_PREFER_PTHREAD)
+-include(FindThreads)
+-set(objc_LINK_FLAGS "${objc_LINK_FLAGS} ${CMAKE_THREAD_LIBS_INIT}")
+-
+-
+-
+-add_library(objc SHARED ${libobjc_C_SRCS} ${libobjc_ASM_SRCS} ${libobjc_OBJC_SRCS} ${libobjc_CXX_SRCS})
+-
+-set_target_properties(objc PROPERTIES
+-	LINKER_LANGUAGE C
+-	SOVERSION ${libobjc_VERSION}
+-	OUTPUT_NAME ${LIBOBJC_NAME}
+-	LINK_FLAGS "${objc_LINK_FLAGS}"
+-	)
+-
+-
+-set(BUILD_STATIC_LIBOBJC false CACHE BOOL
+-	"Build the static version of libobjc")
+-if (BUILD_STATIC_LIBOBJC)
+-	add_library(objc-static STATIC ${libobjc_C_SRCS} ${libobjc_ASM_SRCS} ${libobjc_OBJC_SRCS} ${libobjc_CXX_SRCS})
+-	set_target_properties(objc-static PROPERTIES
+-		POSITION_INDEPENDENT_CODE true
+-		OUTPUT_NAME ${LIBOBJC_NAME})
+-	list(APPEND INSTALL_TARGETS objc-static)
+-endif ()
+-
+-
+-
+-# Explicitly link the C++ runtime and libgc if we are compiling with gc support.
+-target_link_libraries(objc ${CXX_RUNTIME})
+-if (LIBGC)
+-	target_link_libraries(objc ${LIBGC})
+-endif ()
+-
+-# Link libdispatch if available (we'll miss symbols for toydispatch otherwise)
+-find_library(LIBDISPATCH dispatch)
+-if (LIBDISPATCH)
+-	target_link_libraries(objc ${LIBDISPATCH})
+-endif ()
+-
+ #
+ # Installation
+ #
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libobjc2.git/commitdiff/c075f6dc846de197694335bca9ad2ca066fc8c32



More information about the pld-cvs-commit mailing list