Skip to content

Commit 6934c40

Browse files
committed
Fix
1 parent e31e165 commit 6934c40

27 files changed

+1267
-0
lines changed

.gitmodules

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[submodule "Formats"]
2+
path = Formats
3+
url = https://github.com/horsicq/Formats
4+
[submodule "StaticScan"]
5+
path = StaticScan
6+
url = https://github.com/horsicq/StaticScan

Formats

Submodule Formats added at 0b2c497

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2018 hors<[email protected]>
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

NFD_source.pro

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
TEMPLATE = subdirs
2+
3+
SUBDIRS += gui_source
4+
SUBDIRS += console_source

StaticScan

Submodule StaticScan added at 60f573f

build.pri

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# For additional build parameters
2+
CONFIG(debug, debug|release) {
3+
DESTDIR = ../build/debug
4+
} else {
5+
DESTDIR = ../build/release
6+
}

build_lin64.sh

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
#!/bin/sh -x
2+
QT_PATH=$HOME/Qt5.6.3/5.6.3/gcc_64
3+
RELEASE_VERSION=$(cat "release_version.txt")
4+
echo $RELEASE_VERSION
5+
SOURCE_PATH=$PWD
6+
7+
BUILD_NAME=nfd_lin64_portable
8+
GUIEXE=nfd
9+
CONEXE=nfdc
10+
11+
cd $SOURCE_PATH
12+
13+
rm -rf build
14+
15+
function makeproject
16+
{
17+
cd $SOURCE_PATH/$1
18+
19+
$QT_PATH/bin/qmake $1.pro -spec linux-g++
20+
make -f Makefile clean
21+
make -f Makefile
22+
23+
rm -rf Makefile
24+
rm -rf Makefile.Release
25+
rm -rf Makefile.Debug
26+
rm -rf object_script.*
27+
28+
cd $SOURCE_PATH
29+
}
30+
31+
makeproject gui_source
32+
makeproject console_source
33+
34+
mkdir -p release
35+
rm -rf release/$BUILD_NAME
36+
mkdir -p release/$BUILD_NAME
37+
mkdir -p release/$BUILD_NAME/base
38+
mkdir -p release/$BUILD_NAME/base/platforms
39+
40+
cp -R $QT_PATH/plugins/platforms/libqxcb.so $SOURCE_PATH/release/$BUILD_NAME/base/platforms/
41+
42+
cp -R $SOURCE_PATH/build/release/nfd $SOURCE_PATH/release/$BUILD_NAME/base/
43+
cp -R $SOURCE_PATH/build/release/nfdc $SOURCE_PATH/release/$BUILD_NAME/base/
44+
45+
cp -R $QT_PATH/lib/libQt5Core.so.5.6.3 $SOURCE_PATH/release/$BUILD_NAME/base/
46+
cp -R $QT_PATH/lib/libQt5Gui.so.5.6.3 $SOURCE_PATH/release/$BUILD_NAME/base/
47+
cp -R $QT_PATH/lib/libQt5Widgets.so.5.6.3 $SOURCE_PATH/release/$BUILD_NAME/base/
48+
cp -R $QT_PATH/lib/libQt5DBus.so.5.6.3 $SOURCE_PATH/release/$BUILD_NAME/base/
49+
cp -R $QT_PATH/lib/libQt5XcbQpa.so.5.6.3 $SOURCE_PATH/release/$BUILD_NAME/base/
50+
cp -R $QT_PATH/lib/libicui18n.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/
51+
cp -R $QT_PATH/lib/libicuuc.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/
52+
cp -R $QT_PATH/lib/libicudata.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/
53+
54+
mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Core.so.5.6.3 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Core.so.5
55+
mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Gui.so.5.6.3 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Gui.so.5
56+
mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Widgets.so.5.6.3 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Widgets.so.5
57+
mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5DBus.so.5.6.3 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5DBus.so.5
58+
mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5XcbQpa.so.5.6.3 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5XcbQpa.so.5
59+
mv $SOURCE_PATH/release/$BUILD_NAME/base/libicui18n.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/libicui18n.so.56
60+
mv $SOURCE_PATH/release/$BUILD_NAME/base/libicuuc.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/libicuuc.so.56
61+
mv $SOURCE_PATH/release/$BUILD_NAME/base/libicudata.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/libicudata.so.56
62+
63+
echo "#!/bin/sh" >> release/$BUILD_NAME/nfd.sh
64+
echo "export LD_LIBRARY_PATH=\"./base:$LD_LIBRARY_PATH\"" >> release/$BUILD_NAME/nfd.sh
65+
echo "./base/nfd $*" >> release/$BUILD_NAME/nfd.sh
66+
67+
echo "#!/bin/sh" >> release/$BUILD_NAME/nfdc.sh
68+
echo "export LD_LIBRARY_PATH=\"./base:$LD_LIBRARY_PATH\"" >> release/$BUILD_NAME/nfdc.sh
69+
echo "./base/nfdc $*" >> release/$BUILD_NAME/nfdc.sh
70+
71+
chmod +x release/$BUILD_NAME/nfd.sh
72+
chmod +x release/$BUILD_NAME/nfdc.sh
73+
74+
rm -rf $SOURCE_PATH/release/${BUILD_NAME}_${RELEASE_VERSION}.tar.gz
75+
rm -rf $SOURCE_PATH/release/${BUILD_NAME}_${RELEASE_VERSION}.tar
76+
77+
cd release
78+
79+
tar -cvf ${BUILD_NAME}_${RELEASE_VERSION}.tar $BUILD_NAME
80+
gzip --best ${BUILD_NAME}_${RELEASE_VERSION}.tar
81+
82+
cd ..
83+
84+
rm -rf release/$BUILD_NAME

build_mac.sh

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
#!/bin/sh -x
2+
QT_PATH=$HOME/Qt5.10.1/5.10.1/clang_64
3+
RELEASE_VERSION=$(cat "release_version.txt")
4+
echo $RELEASE_VERSION
5+
SOURCE_PATH=$PWD
6+
7+
BUILD_NAME=nfd_mac_portable
8+
GUIEXE=nfd
9+
CONEXE=nfdc
10+
11+
cd $SOURCE_PATH
12+
13+
rm -rf build
14+
15+
function makeproject
16+
{
17+
cd $SOURCE_PATH/$1
18+
19+
$QT_PATH/bin/qmake $1.pro -spec macx-clang CONFIG+=x86_64
20+
make -f Makefile clean
21+
make -f Makefile
22+
23+
rm -rf Makefile
24+
rm -rf Makefile.Release
25+
rm -rf Makefile.Debug
26+
rm -rf object_script.*
27+
28+
cd $SOURCE_PATH
29+
}
30+
31+
makeproject gui_source
32+
makeproject console_source
33+
34+
mkdir -p release
35+
rm -rf release/$BUILD_NAME
36+
mkdir -p release/$BUILD_NAME
37+
38+
cp -R $SOURCE_PATH/build/release/$GUIEXE.app $SOURCE_PATH/release/$BUILD_NAME
39+
cp -R $SOURCE_PATH/build/release/$CONEXE $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/MacOS/
40+
mkdir $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/PlugIns
41+
42+
function fixlibrary
43+
{
44+
install_name_tool -change @rpath/$1.framework/Versions/5/$1 @executable_path/../Frameworks/$1.framework/Versions/5/$1 $2
45+
}
46+
47+
function fiximport
48+
{
49+
fixlibrary QtWidgets $1
50+
fixlibrary QtGui $1
51+
fixlibrary QtCore $1
52+
#fixlibrary QtDBus $1
53+
fixlibrary QtPrintSupport $1
54+
}
55+
56+
function copylibrary
57+
{
58+
mkdir $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/Frameworks
59+
mkdir $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/Frameworks/$1.framework
60+
mkdir $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/Frameworks/$1.framework/Versions
61+
mkdir $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/Frameworks/$1.framework/Versions/5
62+
63+
cp -R $QT_PATH/lib/$1.framework/Versions/5/$1 $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/Frameworks/$1.framework/Versions/5
64+
65+
install_name_tool -id @executable_path/../Frameworks/$1.framework/Versions/5/$1 $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/Frameworks/$1.framework/Versions/5/$1
66+
fiximport $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/Frameworks/$1.framework/Versions/5/$1
67+
}
68+
69+
function copyplugin
70+
{
71+
mkdir $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/PlugIns/$1/
72+
cp -R $QT_PATH/plugins/$1/$2.dylib $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/PlugIns/$1/
73+
74+
install_name_tool -id @executable_path/../PlugIns/$1/$2.dylib $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/PlugIns/$1/$2.dylib
75+
fiximport $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/PlugIns/$1/$2.dylib
76+
}
77+
78+
fiximport $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/MacOS/$GUIEXE
79+
fiximport $SOURCE_PATH/release/$BUILD_NAME/$GUIEXE.app/Contents/MacOS/$CONEXE
80+
81+
copylibrary QtWidgets
82+
copylibrary QtGui
83+
copylibrary QtCore
84+
#copylibrary QtDBus
85+
copylibrary QtPrintSupport
86+
87+
copyplugin platforms libqcocoa
88+
copyplugin platforms libqminimal
89+
copyplugin platforms libqoffscreen
90+
91+
rm -rf $SOURCE_PATH/release/${BUILD_NAME}_${RELEASE_VERSION}.dmg
92+
hdiutil create -format UDBZ -quiet -srcfolder $SOURCE_PATH/release/$BUILD_NAME $SOURCE_PATH/release/${BUILD_NAME}_${RELEASE_VERSION}.dmg
93+
cd $SOURCE_PATH/release/
94+
zip -r $SOURCE_PATH/release/${BUILD_NAME}_${RELEASE_VERSION}.zip ${BUILD_NAME}
95+
96+
rm -rf $SOURCE_PATH/release/$BUILD_NAME
97+
98+

build_win32.bat

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 12.0"
2+
set SEVENZIP_PATH="C:\Program Files\7-Zip"
3+
set QT_PATH32="C:\Qt\5.6.3\msvc2013"
4+
5+
set BUILD_NAME=nfd_win32_portable
6+
set SOURCE_PATH=%~dp0
7+
mkdir %SOURCE_PATH%\build
8+
mkdir %SOURCE_PATH%\build\loader
9+
mkdir %SOURCE_PATH%\release
10+
set /p RELEASE_VERSION=<%SOURCE_PATH%\release_version.txt
11+
12+
set QT_PATH=%QT_PATH32%
13+
set QT_SPEC=win32-msvc2013
14+
call %VS_PATH%\VC\bin\vcvars32.bat
15+
set GUIEXE=nfd.exe
16+
set CONEXE=nfdc.exe
17+
set ZIP_NAME=nfd_win32_%RELEASE_VERSION%
18+
set RES_FILE=rsrc
19+
20+
cd gui_source
21+
%QT_PATH%\bin\qmake.exe gui_source.pro -r -spec %QT_SPEC% "CONFIG+=release"
22+
23+
nmake Makefile.Release clean
24+
nmake
25+
del Makefile
26+
del Makefile.Release
27+
del Makefile.Debug
28+
29+
cd ..
30+
31+
cd console_source
32+
%QT_PATH%\bin\qmake.exe console_source.pro -r -spec %QT_SPEC% "CONFIG+=release"
33+
34+
nmake Makefile.Release clean
35+
nmake
36+
del Makefile
37+
del Makefile.Release
38+
del Makefile.Debug
39+
40+
cd ..
41+
42+
cd winloader_source
43+
44+
cl.exe /c winloader.cpp
45+
Rc.exe /v %RES_FILE%.rc
46+
link.exe winloader.obj %RES_FILE%.res user32.lib kernel32.lib shell32.lib /SUBSYSTEM:WINDOWS /ENTRY:entry /OUT:%SOURCE_PATH%\build\loader\%GUIEXE%
47+
del /s winloader.obj
48+
del /s %RES_FILE%.res
49+
50+
cd ..
51+
52+
mkdir %SOURCE_PATH%\release\%BUILD_NAME%
53+
mkdir %SOURCE_PATH%\release\%BUILD_NAME%\base
54+
mkdir %SOURCE_PATH%\release\%BUILD_NAME%\base\plugins
55+
mkdir %SOURCE_PATH%\release\%BUILD_NAME%\base\plugins\platforms
56+
57+
copy %SOURCE_PATH%\build\loader\%GUIEXE% %SOURCE_PATH%\release\%BUILD_NAME%\
58+
copy %SOURCE_PATH%\build\release\%GUIEXE% %SOURCE_PATH%\release\%BUILD_NAME%\base\
59+
copy %SOURCE_PATH%\build\release\%CONEXE% %SOURCE_PATH%\release\%BUILD_NAME%\base\
60+
copy %QT_PATH%\bin\Qt5Widgets.dll %SOURCE_PATH%\release\%BUILD_NAME%\base\
61+
copy %QT_PATH%\bin\Qt5Gui.dll %SOURCE_PATH%\release\%BUILD_NAME%\base\
62+
copy %QT_PATH%\bin\Qt5Core.dll %SOURCE_PATH%\release\%BUILD_NAME%\base\
63+
copy %QT_PATH%\plugins\platforms\qwindows.dll %SOURCE_PATH%\release\%BUILD_NAME%\base\plugins\platforms\
64+
65+
cd %SOURCE_PATH%\release
66+
if exist %ZIP_NAME%.zip del %ZIP_NAME%.zip
67+
%SEVENZIP_PATH%\7z.exe a %ZIP_NAME%.zip %BUILD_NAME%\*
68+
rmdir /s /q %SOURCE_PATH%\release\%BUILD_NAME%
69+
cd ..

console_source/console_source.pro

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
QT += core
2+
QT -= gui
3+
4+
include(../build.pri)
5+
6+
CONFIG += c++11
7+
8+
TARGET = nfdc
9+
CONFIG += console
10+
CONFIG -= app_bundle
11+
12+
TEMPLATE = app
13+
14+
SOURCES += \
15+
main_console.cpp
16+
17+
18+
!contains(XCONFIG, staticscan) {
19+
XCONFIG += staticscan
20+
include(../StaticScan/staticscan.pri)
21+
}
22+
23+
# The following define makes your compiler emit warnings if you use
24+
# any feature of Qt which as been marked deprecated (the exact warnings
25+
# depend on your compiler). Please consult the documentation of the
26+
# deprecated API in order to know how to port your code away from it.
27+
DEFINES += QT_DEPRECATED_WARNINGS
28+
29+
# You can also make your code fail to compile if you use deprecated APIs.
30+
# In order to do so, uncomment the following line.
31+
# You can also select to disable deprecated APIs only up to a certain version of Qt.
32+
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0

0 commit comments

Comments
 (0)