Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make all macOS dependencies universal in maclibs/ and the GoldenDict.app is universal now #53

Merged
merged 1 commit into from
Apr 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
20 changes: 5 additions & 15 deletions .github/workflows/macos-6.2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
strategy:
matrix:
os: [macos-11]
qt_ver: [6.2.4,6.3.0]
qt_ver: [6.2.4]
qt_arch: [clang_64]
env:
targetName: GoldenDict
Expand Down Expand Up @@ -67,25 +67,15 @@ jobs:

- name: build macos
run: |
wget ftp://ftp.sra.co.jp/pub/misc/eb/eb-4.4.3.tar.bz2
tar xvjf eb-4.4.3.tar.bz2
cd eb-4.4.3 && ./configure && make -j 8 && sudo make install && cd ..
#brew install qt # or use official offline installer
brew install opencc hunspell ffmpeg@5 libtiff xz lzo libogg libvorbis zstd
brew uninstall opencc hunspell ffmpeg@5 ffmpeg@4 libtiff xz lzo libogg libvorbis zstd || true
brew install create-dmg
qmake CONFIG+=release CONFIG+=zim_support CONFIG+=chinese_conversion_support
make -j 8
qmake CONFIG+=release CONFIG+=zim_support CONFIG+=chinese_conversion_support QMAKE_APPLE_DEVICE_ARCHS="x86_64 arm64"
make -j$(nproc)
# 打包
- name: package
run: |
macdeployqt ${targetName}.app -qmldir=. -verbose=1
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libswresample.4.dylib" "@executable_path/../Frameworks/libswresample.4.dylib" "GoldenDict.app/Contents/Frameworks//libavcodec.59.dylib"
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libavutil.57.dylib" "@executable_path/../Frameworks/libavutil.57.dylib" "GoldenDict.app/Contents/Frameworks//libavcodec.59.dylib"
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libavcodec.59.dylib" "@executable_path/../Frameworks/libavcodec.59.dylib" "GoldenDict.app/Contents/Frameworks//libavformat.59.dylib"
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libswresample.4.dylib" "@executable_path/../Frameworks/libswresample.4.dylib" "GoldenDict.app/Contents/Frameworks//libavformat.59.dylib"
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libavutil.57.dylib" "@executable_path/../Frameworks/libavutil.57.dylib" "GoldenDict.app/Contents/Frameworks//libavformat.59.dylib"
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libavutil.57.dylib" "@executable_path/../Frameworks/libavutil.57.dylib" "GoldenDict.app/Contents/Frameworks//libswresample.4.dylib"
install_name_tool -change "/usr/local/Cellar/nettle/3.7.3/lib/libnettle.8.dylib" "@executable_path/../Frameworks/libnettle.8.dylib" "GoldenDict.app/Contents/Frameworks//libhogweed.6.dylib"
codesign --force --deep -s - GoldenDict.app
otool -L GoldenDict.app/Contents/MacOS/GoldenDict
otool -L GoldenDict.app/Contents/Frameworks/lib*
mkdir tmp
Expand Down
75 changes: 0 additions & 75 deletions .github/workflows/macos-m1.yml

This file was deleted.

16 changes: 3 additions & 13 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,25 +67,15 @@ jobs:
fetch-depth: 0
- name: build macos
run: |
wget ftp://ftp.sra.co.jp/pub/misc/eb/eb-4.4.3.tar.bz2
tar xvjf eb-4.4.3.tar.bz2
cd eb-4.4.3 && ./configure && make -j 8 && sudo make install && cd ..
#brew install qt # or use official offline installer
brew install opencc hunspell ffmpeg@5 libtiff xz lzo libogg libvorbis zstd
brew uninstall opencc hunspell ffmpeg@5 ffmpeg@4 libtiff xz lzo libogg libvorbis zstd || true
brew install create-dmg
qmake CONFIG+=release CONFIG+=zim_support CONFIG+=chinese_conversion_support
make -j 8
make -j$(nproc)
# 打包
- name: package
run: |
macdeployqt ${targetName}.app -qmldir=. -verbose=1
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libswresample.4.dylib" "@executable_path/../Frameworks/libswresample.4.dylib" "GoldenDict.app/Contents/Frameworks//libavcodec.59.dylib"
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libavutil.57.dylib" "@executable_path/../Frameworks/libavutil.57.dylib" "GoldenDict.app/Contents/Frameworks//libavcodec.59.dylib"
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libavcodec.59.dylib" "@executable_path/../Frameworks/libavcodec.59.dylib" "GoldenDict.app/Contents/Frameworks//libavformat.59.dylib"
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libswresample.4.dylib" "@executable_path/../Frameworks/libswresample.4.dylib" "GoldenDict.app/Contents/Frameworks//libavformat.59.dylib"
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libavutil.57.dylib" "@executable_path/../Frameworks/libavutil.57.dylib" "GoldenDict.app/Contents/Frameworks//libavformat.59.dylib"
install_name_tool -change "/usr/local/Cellar/ffmpeg/5.0.1/lib/libavutil.57.dylib" "@executable_path/../Frameworks/libavutil.57.dylib" "GoldenDict.app/Contents/Frameworks//libswresample.4.dylib"
install_name_tool -change "/usr/local/Cellar/nettle/3.7.3/lib/libnettle.8.dylib" "@executable_path/../Frameworks/libnettle.8.dylib" "GoldenDict.app/Contents/Frameworks//libhogweed.6.dylib"
codesign --force --deep -s - GoldenDict.app
otool -L GoldenDict.app/Contents/MacOS/GoldenDict
otool -L GoldenDict.app/Contents/Frameworks/lib*
mkdir tmp
Expand Down
6 changes: 1 addition & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,8 @@ And then invoke `qmake-qt5` and `make`:

### macOS
```
wget ftp://ftp.sra.co.jp/pub/misc/eb/eb-4.4.3.tar.bz2
tar xvjf eb-4.4.3.tar.bz2
cd eb-4.4.3 && ./configure && make -j 8 && sudo make install
brew install qt # or use official offline installer
brew install opencc libao hunspell ffmpeg libtiff xz lzo libogg libvorbis
qmake CONFIG+=release CONFIG+=zim_support CONFIG+=chinese_conversion_support
qmake CONFIG+=release CONFIG+=zim_support CONFIG+=chinese_conversion_support QMAKE_APPLE_DEVICE_ARCHS="x86_64 arm64"
make
make install
```
Expand Down
6 changes: 3 additions & 3 deletions goldendict.pro
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ mac {
-lvorbisfile \
-lvorbis \
-logg \
-lhunspell-1.7.0 \
-lhunspell \
-llzo2
!CONFIG( no_ffmpeg_player ) {
LIBS += -lao \
Expand All @@ -197,8 +197,8 @@ mac {
}
QT_CONFIG -= no-pkg-config
CONFIG += link_pkgconfig
INCLUDEPATH = $${PWD}/maclibs/include /opt/homebrew/include /usr/local/include
LIBS += -L$${PWD}/maclibs/lib -L/opt/homebrew/lib -L/usr/local/lib -framework AppKit -framework Carbon
INCLUDEPATH = $${PWD}/maclibs/include
LIBS += -L$${PWD}/maclibs/lib -framework AppKit -framework Carbon
OBJECTIVE_SOURCES += lionsupport.mm \
machotkeywrapper.mm \
macmouseover.mm \
Expand Down
100 changes: 100 additions & 0 deletions maclibs/include/eb/appendix.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
/* -*- C -*-
* Copyright (c) 1997-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/

#ifndef EB_APPENDIX_H
#define EB_APPENDIX_H

#ifdef __cplusplus
extern "C" {
#endif

#ifdef EB_BUILD_LIBRARY
#include "eb.h"
#else
#include <eb/eb.h>
#endif

/*
* Function declarations.
*/
/* appendix.c */
void eb_initialize_appendix(EB_Appendix *appendix);
void eb_finalize_appendix(EB_Appendix *appendix);
EB_Error_Code eb_bind_appendix(EB_Appendix *appendix, const char *path);
int eb_is_appendix_bound(EB_Appendix *appendix);
EB_Error_Code eb_appendix_path(EB_Appendix *appendix, char *path);

/* appsub.c */
EB_Error_Code eb_load_all_appendix_subbooks(EB_Appendix *appendix);
EB_Error_Code eb_appendix_subbook_list(EB_Appendix *appendix,
EB_Subbook_Code *subbook_list, int *subbook_count);
EB_Error_Code eb_appendix_subbook(EB_Appendix *appendix,
EB_Subbook_Code *subbook_code);
EB_Error_Code eb_appendix_subbook_directory(EB_Appendix *appendix,
char *directory);
EB_Error_Code eb_appendix_subbook_directory2(EB_Appendix *appendix,
EB_Subbook_Code subbook_code, char *directory);
EB_Error_Code eb_set_appendix_subbook(EB_Appendix *appendix,
EB_Subbook_Code subbook_code);
void eb_unset_appendix_subbook(EB_Appendix *appendix);

/* narwalt.c */
int eb_have_narrow_alt(EB_Appendix *appendix);
EB_Error_Code eb_narrow_alt_start(EB_Appendix *appendix, int *start);
EB_Error_Code eb_narrow_alt_end(EB_Appendix *appendix, int *end);
EB_Error_Code eb_narrow_alt_character_text(EB_Appendix *appendix,
int character_number, char *text);
EB_Error_Code eb_forward_narrow_alt_character(EB_Appendix *appendix,
int n, int *character_number);
EB_Error_Code eb_backward_narrow_alt_character(EB_Appendix *appendix,
int n, int *character_number);

/* stopcode.c */
int eb_have_stop_code(EB_Appendix *appendix);
EB_Error_Code eb_stop_code(EB_Appendix *appendix, int *);

/* widealt.c */
int eb_have_wide_alt(EB_Appendix *appendix);
EB_Error_Code eb_wide_alt_start(EB_Appendix *appendix, int *start);
EB_Error_Code eb_wide_alt_end(EB_Appendix *appendix, int *end);
EB_Error_Code eb_wide_alt_character_text(EB_Appendix *appendix,
int character_number, char *text);
EB_Error_Code eb_forward_wide_alt_character(EB_Appendix *appendix, int n,
int *character_number);
EB_Error_Code eb_backward_wide_alt_character(EB_Appendix *appendix, int n,
int *character_number);

/* for backward compatibility */
#define eb_suspend_appendix eb_unset_appendix_subbook
#define eb_initialize_all_appendix_subbooks eb_load_all_appendix_subbooks

#ifdef __cplusplus
}
#endif

#endif /* not EB_APPENDIX_H */
73 changes: 73 additions & 0 deletions maclibs/include/eb/binary.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/* -*- C -*-
* Copyright (c) 2001-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/

#ifndef EB_BINARY_H
#define EB_BINARY_H

#ifdef __cplusplus
extern "C" {
#endif

#include <sys/types.h>

#ifdef EB_BUILD_LIBRARY
#include "defs.h"
#else
#include <eb/defs.h>
#endif

/*
* Function declarations.
*/
/* binary.c */
EB_Error_Code eb_set_binary_mono_graphic(EB_Book *book,
const EB_Position *position, int width, int height);
EB_Error_Code eb_set_binary_gray_graphic(EB_Book *book,
const EB_Position *position, int width, int height);
EB_Error_Code eb_set_binary_wave(EB_Book *book,
const EB_Position *start_position, const EB_Position *end_position);
EB_Error_Code eb_set_binary_color_graphic(EB_Book *book,
const EB_Position *position);
EB_Error_Code eb_set_binary_mpeg(EB_Book *book, const unsigned int *argv);
EB_Error_Code eb_read_binary(EB_Book *book, size_t binary_max_length,
char *binary, ssize_t *binary_length);
void eb_unset_binary(EB_Book *book);

/* filename.c */
EB_Error_Code eb_compose_movie_file_name(const unsigned int *argv,
char *composed_file_name);
EB_Error_Code eb_compose_movie_path_name(EB_Book *book,
const unsigned int *argv, char *composed_path_name);
EB_Error_Code eb_decompose_movie_file_name(unsigned int *argv,
const char *composed_file_name);

#ifdef __cplusplus
}
#endif

#endif /* not EB_BINARY_H */