diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2019-10-12 01:19:45 +0200 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2019-10-14 15:05:24 +0200 |
commit | b6dcea013e439099328dd15fd4335bd71d3a04da (patch) | |
tree | 07eb4e492ffbb2f09ebb2f302471b7f392ca18a6 /src | |
parent | f56a8c49f90bda734110f5ee28b2c405b417b057 (diff) | |
download | VeraCrypt-b6dcea013e439099328dd15fd4335bd71d3a04da.tar.gz VeraCrypt-b6dcea013e439099328dd15fd4335bd71d3a04da.zip |
MacOSX: Add build scripts and modifications to linking against wxWidgets 3.1.2 for non legacy build targeting OSX 10.9+
Diffstat (limited to 'src')
-rw-r--r-- | src/Build/Resources/MacOSX/Info.plist.legacy.xml | 106 | ||||
-rw-r--r-- | src/Build/Resources/MacOSX/Info.plist.xml | 8 | ||||
-rwxr-xr-x | src/Build/build_veracrypt_macosx.sh | 14 | ||||
-rwxr-xr-x | src/Build/build_veracrypt_macosx_legacy.sh | 32 | ||||
-rwxr-xr-x | src/Main/Main.make | 4 | ||||
-rw-r--r-- | src/Makefile | 42 |
6 files changed, 183 insertions, 23 deletions
diff --git a/src/Build/Resources/MacOSX/Info.plist.legacy.xml b/src/Build/Resources/MacOSX/Info.plist.legacy.xml new file mode 100644 index 00000000..14b69603 --- /dev/null +++ b/src/Build/Resources/MacOSX/Info.plist.legacy.xml @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd"> +<plist version="0.9"> +<dict> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + + <key>CFBundleIdentifier</key> + <string>org.idrix.VeraCrypt</string> + + <key>UTExportedTypeDeclarations</key> + <array> + <dict> + <key>UTTypeIdentifier</key> + <string>org.idrix.veracrypt.hc</string> + + <key>UTTypeDescription</key> + <string>VeraCrypt Container File</string> + + <key>UTTypeConformsTo</key> + <array> + <string>public.data</string> + </array> + + <key>UTTypeTagSpecification</key> + <dict> + <key>public.filename-extension</key> + <array> + <string>hc</string> + <string>tc</string> + </array> + + <key>public.mime-type</key> + <string>application/veracrypt</string> + </dict> + </dict> + </array> + + <key>CFBundleDocumentTypes</key> + <array> + <dict> + <key>CFBundleTypeIconFile</key> + <string>VeraCrypt_Volume.icns</string> + <key>CFBundleTypeName</key> + <string>VeraCrypt Container File</string> + <key>CFBundleTypeRole</key> + <string>Viewer</string> + <key>LSHandlerRank</key> + <string>Owner</string> + <key>LSItemContentTypes</key> + <array> + <!-- my app supports files with my custom extension (see UTExportedTypeDeclarations) --> + <string>org.idrix.veracrypt.hc</string> + </array> + </dict> + </array> + + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + + <key>CFBundleExecutable</key> + <string>VeraCrypt</string> + + <key>CFBundleIconFile</key> + <string>VeraCrypt.icns</string> + + <key>CFBundleName</key> + <string>VeraCrypt</string> + + <key>CFBundlePackageType</key> + <string>APPL</string> + + <key>CFBundleSignature</key> + <string>TRUE</string> + + <key>CFBundleVersion</key> + <string>1.24.6</string> + + <key>CFBundleShortVersionString</key> + <string>_VERSION_</string> + + <key>CFBundleLongVersionString</key> + <string>VeraCrypt _VERSION_</string> + + <key>LSArchitecturePriority</key> + <array> + <string>x86_64</string> + <string>i386</string> + </array> + + <key>LSMinimumSystemVersion</key> + <string>10.7.0</string> + + <key>LSRequiresCarbon</key> + <false/> + + <key>CSResourcesFileMapped</key> + <true/> + + <key>NSHighResolutionCapable</key> + <true/> + + <key>NSPrincipalClass</key> + <string>NSApplication</string> +</dict> +</plist> diff --git a/src/Build/Resources/MacOSX/Info.plist.xml b/src/Build/Resources/MacOSX/Info.plist.xml index 14b69603..771a3819 100644 --- a/src/Build/Resources/MacOSX/Info.plist.xml +++ b/src/Build/Resources/MacOSX/Info.plist.xml @@ -82,14 +82,8 @@ <key>CFBundleLongVersionString</key> <string>VeraCrypt _VERSION_</string> - <key>LSArchitecturePriority</key> - <array> - <string>x86_64</string> - <string>i386</string> - </array> - <key>LSMinimumSystemVersion</key> - <string>10.7.0</string> + <string>10.9.0</string> <key>LSRequiresCarbon</key> <false/> diff --git a/src/Build/build_veracrypt_macosx.sh b/src/Build/build_veracrypt_macosx.sh index 233afb20..a28ba8de 100755 --- a/src/Build/build_veracrypt_macosx.sh +++ b/src/Build/build_veracrypt_macosx.sh @@ -12,22 +12,22 @@ SOURCEPATH=$(cd "$(dirname "$SCRIPTPATH/../.")"; pwd) # directory where the VeraCrypt project has been checked out PARENTDIR=$(cd "$(dirname "$SCRIPTPATH/../../../.")"; pwd) -# the sources of wxWidgets 3.0.3 must be extracted to the parent directory -export WX_ROOT=$PARENTDIR/wxWidgets-3.0.4 +# the sources of wxWidgets 3.1.2 must be extracted to the parent directory +export WX_ROOT=$PARENTDIR/wxWidgets-3.1.2 echo "Using wxWidgets sources in $WX_ROOT" # this will be the temporary wxWidgets directory -export WX_BUILD_DIR=$PARENTDIR/wxBuild +export WX_BUILD_DIR=$PARENTDIR/wxBuild-3.1.2 -# define the SDK version to use. We use 10.7 by default -export VC_OSX_TARGET=10.7 +# define the SDK version to use. We use 10.9 by default +export VC_OSX_TARGET=10.9 echo "Using MacOSX SDK $VC_OSX_TARGET" cd $SOURCEPATH echo "Building VeraCrypt" -make WXSTATIC=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package +# make WXSTATIC=FULL wxbuild && make WXSTATIC=FULL clean && make WXSTATIC=FULL && make WXSTATIC=FULL package # Uncomment below and comment line above to reuse existing wxWidgets build -# make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package
\ No newline at end of file +make WXSTATIC=FULL clean && make WXSTATIC=FULL && make WXSTATIC=FULL package
\ No newline at end of file diff --git a/src/Build/build_veracrypt_macosx_legacy.sh b/src/Build/build_veracrypt_macosx_legacy.sh new file mode 100755 index 00000000..6c86a7ff --- /dev/null +++ b/src/Build/build_veracrypt_macosx_legacy.sh @@ -0,0 +1,32 @@ +# +# Copyright (c) 2013-2017 IDRIX +# Governed by the Apache License 2.0 the full text of which is contained +# in the file License.txt included in VeraCrypt binary and source +# code distribution packages. +# + +# Absolute path this script is in +SCRIPTPATH=$(cd "$(dirname "$0")"; pwd) +# source directory which contains the Makefile +SOURCEPATH=$(cd "$(dirname "$SCRIPTPATH/../.")"; pwd) +# directory where the VeraCrypt project has been checked out +PARENTDIR=$(cd "$(dirname "$SCRIPTPATH/../../../.")"; pwd) + +# the sources of wxWidgets 3.0.4 must be extracted to the parent directory +export WX_ROOT=$PARENTDIR/wxWidgets-3.0.4 +echo "Using wxWidgets sources in $WX_ROOT" +0# this will be the temporary wxWidgets directory +export WX_BUILD_DIR=$PARENTDIR/wxBuild + +# define the SDK version to use. We use 10.7 by default +export VC_OSX_TARGET=10.7 +echo "Using MacOSX SDK $VC_OSX_TARGET" + + +cd $SOURCEPATH + +echo "Building VeraCrypt" +make WXSTATIC=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package + +# Uncomment below and comment line above to reuse existing wxWidgets build +# make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package
\ No newline at end of file diff --git a/src/Main/Main.make b/src/Main/Main.make index 0bdd951d..9bf5b025 100755 --- a/src/Main/Main.make +++ b/src/Main/Main.make @@ -210,7 +210,11 @@ endif cp $(BASE_DIR)/../doc/html/* $(APPNAME).app/Contents/Resources/doc/HTML echo -n APPLTRUE >$(APPNAME).app/Contents/PkgInfo +ifdef VC_LEGACY_BUILD + sed -e 's/_VERSION_/$(patsubst %a,%.1,$(patsubst %b,%.2,$(TC_VERSION)))/' ../Build/Resources/MacOSX/Info.plist.legacy.xml >$(APPNAME).app/Contents/Info.plist +else sed -e 's/_VERSION_/$(patsubst %a,%.1,$(patsubst %b,%.2,$(TC_VERSION)))/' ../Build/Resources/MacOSX/Info.plist.xml >$(APPNAME).app/Contents/Info.plist +endif codesign -s "Developer ID Application: IDRIX (Z933746L2S)" --timestamp $(APPNAME).app install: prepare diff --git a/src/Makefile b/src/Makefile index 7e7172b5..b60ecfd9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -91,6 +91,9 @@ ifeq "$(origin WXSTATIC)" "command line" export VC_WX_STATIC := 1 WX_CONFIG = $(WX_BUILD_DIR)/wx-config WX_CONFIG_ARGS += --static + ifneq "$(WXSTATIC)" "FULL" + export VC_WX_MINIMAL := 1 + endif endif @@ -224,6 +227,10 @@ ifeq "$(shell uname -s)" "Linux" WXCONFIG_CFLAGS += -mno-sse2 WXCONFIG_CXXFLAGS += -mno-sse2 endif + + ifeq "$(origin WITHGTK3)" "command line" + WX_CONFIGURE_FLAGS += --with-gtk=3 + endif endif @@ -241,6 +248,11 @@ ifeq "$(shell uname -s)" "Darwin" ifeq ($(wildcard $(VC_OSX_SDK)/SDKSettings.plist),) VC_OSX_SDK := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(VC_OSX_TARGET).sdk endif + + #----- Legacy build if OSX <= 10.8: we build both 32-bit and 64-bit ---- + ifneq (,$(filter 10.6 10.7 10.8,$(VC_OSX_TARGET))) + export VC_LEGACY_BUILD := 1 + endif CC := gcc CXX := g++ @@ -277,10 +289,18 @@ ifeq "$(shell uname -s)" "Darwin" S := $(C_CXX_FLAGS) C_CXX_FLAGS = $(subst -MMD,,$(S)) - C_CXX_FLAGS += -gfull -arch i386 -arch x86_64 - LFLAGS += -Wl,-dead_strip -arch i386 -arch x86_64 + C_CXX_FLAGS += -gfull -arch x86_64 + LFLAGS += -Wl,-dead_strip -arch x86_64 + + #----- Legacy build: we build both 32-bit and 64-bit ---- + ifdef VC_LEGACY_BUILD + C_CXX_FLAGS += -arch i386 + LFLAGS += -arch i386 + WX_CONFIGURE_FLAGS += --enable-universal_binary=i386,x86_64 + else + WX_CONFIGURE_FLAGS += --disable-universal_binary + endif - WX_CONFIGURE_FLAGS += --enable-universal_binary=i386,x86_64 WXCONFIG_CFLAGS += -gfull WXCONFIG_CXXFLAGS += -gfull @@ -359,8 +379,10 @@ CFLAGS := $(C_CXX_FLAGS) $(CFLAGS) $(TC_EXTRA_CFLAGS) CXXFLAGS := $(C_CXX_FLAGS) $(CXXFLAGS) $(TC_EXTRA_CXXFLAGS) LFLAGS := $(LFLAGS) $(TC_EXTRA_LFLAGS) -WX_CONFIGURE_FLAGS += --enable-unicode -disable-shared --disable-dependency-tracking --disable-compat26 --enable-exceptions --enable-std_string --enable-dataobj --enable-mimetype \ - --disable-protocol --disable-protocols --disable-url --disable-ipc --disable-sockets --disable-fs_inet --disable-ole --disable-docview --disable-clipboard \ +WX_CONFIGURE_FLAGS += --enable-unicode -disable-shared --disable-dependency-tracking --enable-exceptions --enable-std_string --enable-dataobj --enable-mimetype + +ifdef VC_WX_MINIMAL +WX_CONFIGURE_FLAGS += --disable-protocol --disable-protocols --disable-url --disable-ipc --disable-sockets --disable-fs_inet --disable-ole --disable-docview --disable-clipboard \ --disable-help --disable-html --disable-mshtmlhelp --disable-htmlhelp --disable-mdi --disable-metafile --disable-webkit --disable-webview \ --disable-xrc --disable-aui --disable-postscript --disable-printarch \ --disable-arcstream --disable-fs_archive --disable-fs_zip --disable-tarstream --disable-zipstream \ @@ -376,16 +398,18 @@ WX_CONFIGURE_FLAGS += --enable-unicode -disable-shared --disable-dependency-trac --disable-sound --disable-mediactrl --disable-joystick --disable-apple_ieee \ --disable-gif --disable-pcx --disable-tga --disable-iff --disable-gif --disable-pnm --disable-svg \ --without-expat --without-libtiff --without-libjpeg --without-libpng -without-regex --without-zlib - + ifeq "$(PLATFORM)" "Linux" WX_CONFIGURE_FLAGS += --disable-tooltips -ifeq "$(origin WITHGTK3)" "command line" - WX_CONFIGURE_FLAGS += --with-gtk=3 +ifneq "$(origin WITHGTK3)" "command line" + WX_CONFIGURE_FLAGS += --disable-graphics_ctx +endif else WX_CONFIGURE_FLAGS += --disable-graphics_ctx endif endif + #------ Project build ------ PROJ_DIRS := Platform Volume Driver/Fuse Core Main @@ -428,4 +452,4 @@ endif cd "$(WX_BUILD_DIR)" && "$(WX_ROOT)/configure" $(WX_CONFIGURE_FLAGS) >/dev/null @echo Building wxWidgets library... - cd "$(WX_BUILD_DIR)" && $(MAKE) + cd "$(WX_BUILD_DIR)" && $(MAKE) -j 4 |