Ken Thomases : loader: On Mac, embed Info.plist in (__TEXT, __info_plist) section.

Alexandre Julliard julliard at winehq.org
Tue Jan 8 13:58:43 CST 2013


Module: wine
Branch: master
Commit: c40a72223c9f13aa18d0d5cf7a8071618da6599e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c40a72223c9f13aa18d0d5cf7a8071618da6599e

Author: Ken Thomases <ken at codeweavers.com>
Date:   Mon Jan  7 14:44:23 2013 -0600

loader: On Mac, embed Info.plist in (__TEXT, __info_plist) section.

---

 .gitignore                |    1 +
 configure                 |    4 ++--
 configure.ac              |    4 ++--
 loader/Makefile.in        |    7 +++++--
 loader/wine_info.plist.in |   26 ++++++++++++++++++++++++++
 tools/make_makefiles      |    1 +
 6 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/.gitignore b/.gitignore
index b565fab..f990f3e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -274,6 +274,7 @@ loader/wine-installed
 loader/wine-preloader
 loader/wine64
 loader/wine64-preloader
+loader/wine_info.plist
 msg.pot
 po/*.mo
 programs/Makeprog.rules
diff --git a/configure b/configure
index ca5da34..5e62766 100755
--- a/configure
+++ b/configure
@@ -6567,10 +6567,10 @@ fi
 
     case $host_os in
       darwin11*)
-        LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000"
+        LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"
  ;;
       *)
-        LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000"
+        LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"
  ;;
     esac
     if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes"
diff --git a/configure.ac b/configure.ac
index c06e108..372bc06 100644
--- a/configure.ac
+++ b/configure.ac
@@ -732,9 +732,9 @@ case $host_os in
     AC_SUBST(CORESERVICESLIB,"-framework CoreServices")
     case $host_os in
       darwin11*)
-        AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000"]) ;;
+        AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"]) ;;
       *)
-        AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000"]) ;;
+        AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"]) ;;
     esac
     if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes"
     then
diff --git a/loader/Makefile.in b/loader/Makefile.in
index ecc20ab..3993fa3 100644
--- a/loader/Makefile.in
+++ b/loader/Makefile.in
@@ -39,12 +39,15 @@ LDEXECFLAGS = @LDEXECFLAGS@
 wine-preloader wine64-preloader: preloader.o Makefile.in
 	$(CC) -o $@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 preloader.o $(LIBPORT) $(LDFLAGS)
 
-$(MAIN_BINARY): main.o Makefile.in
+$(MAIN_BINARY): main.o Makefile.in wine_info.plist
 	$(CC) -o $@ $(LDEXECFLAGS) main.o $(LIBWINE) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS) $(LDRPATH_LOCAL)
 
-wine-installed: main.o Makefile.in
+wine-installed: main.o Makefile.in wine_info.plist
 	$(CC) -o $@ $(LDEXECFLAGS) main.o $(LIBWINE) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS) $(LDRPATH_INSTALL)
 
+wine_info.plist: wine_info.plist.in
+	LC_ALL=C sed -e 's, at PACKAGE_VERSION\@, at PACKAGE_VERSION@,g' $< >$@ || ($(RM) $@ && false)
+
 $(EXTRA_BINARIES:%=__install__%): $(EXTRA_BINARIES) $(DESTDIR)$(bindir) dummy
 	f=`expr $@ : '__install__\(.*\)'` && $(INSTALL_PROGRAM) $$f $(DESTDIR)$(bindir)/$$f
 
diff --git a/loader/wine_info.plist.in b/loader/wine_info.plist.in
new file mode 100644
index 0000000..aea99e5
--- /dev/null
+++ b/loader/wine_info.plist.in
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+    <key>CFBundleDevelopmentRegion</key>
+    <string>English</string>
+    <key>CFBundleExecutable</key>
+    <string>wine</string>
+    <key>CFBundleIdentifier</key>
+    <string>org.winehq.wine</string>
+    <key>CFBundleInfoDictionaryVersion</key>
+    <string>6.0</string>
+    <key>CFBundleName</key>
+    <string>Wine</string>
+    <key>CFBundlePackageType</key>
+    <string>APPL</string>
+    <key>CFBundleShortVersionString</key>
+    <string>@PACKAGE_VERSION@</string>
+    <key>CFBundleSignature</key>
+    <string>????</string>
+    <key>CFBundleVersion</key>
+    <string>@PACKAGE_VERSION@</string>
+    <key>NSPrincipalClass</key>
+    <string>WineApplication</string>
+</dict>
+</plist>
diff --git a/tools/make_makefiles b/tools/make_makefiles
index df798d7..be106c9 100755
--- a/tools/make_makefiles
+++ b/tools/make_makefiles
@@ -95,6 +95,7 @@ my @ignores = (
     "*/*/tests/testlist.c",
     "include/config.h",
     "include/stamp-h",
+    "loader/wine_info.plist",
     "msg.pot",
     "po/*.mo",
     "programs/winetest/build.nfo",




More information about the wine-cvs mailing list