Compare commits
No commits in common. "master" and "v1.3.0" have entirely different histories.
@ -5,44 +5,17 @@ is in Photshop Notes.xlsm, an Excel worksheet.
|
||||
|
||||
Smaller icons require manual editing for best appearance.
|
||||
|
||||
For Windows-----------
|
||||
|
||||
Windows .ico file should contain 16x16, 32x32, 48x48, and 256x256 images. We
|
||||
also include 24x24 for Windows XP compatibility.
|
||||
A .ico file can be built at the website icoconvert.com.
|
||||
|
||||
For macOS -----------
|
||||
MacOS .icns file should contain:
|
||||
|
||||
macOS naming conventions for icons:
|
||||
icon_64x64.png (for standard resolution)
|
||||
icon_64x64@2x.png (for hi-res Retina icons)
|
||||
Icon size (@1x) Icon size (@2x)
|
||||
512px × 512px (512pt × 512pt @1x) 1024px × 1024px (512pt × 512pt @2x)
|
||||
256px × 256px (256pt × 256pt @1x) 512px × 512px (256pt × 256pt @2x)
|
||||
128px × 128px (128pt × 128pt @1x) 256px × 256px (128pt × 128pt @2x)
|
||||
32px × 32px (32pt × 32pt @1x) 64px × 64px (32pt × 32pt @2x)
|
||||
16px × 16px (16pt × 16pt @1x) 32px × 32px (16pt × 16pt @2x)
|
||||
|
||||
The macOS hi-res icons are double the size of the standard icons.
|
||||
ex. the icon_128x128@2x is actually a 256x256 image. Mac automatically
|
||||
selects the correct one based on the type of display.
|
||||
|
||||
macOS defaults to using pt (point) instead of px (pixel) for image size. Set the image DPI to 72 px for the
|
||||
original image and it should not cause any sizing issues if using px.
|
||||
|
||||
Mac has a native command line tool, "iconutil", for creating *.icns file.
|
||||
Create the images, listed below, in a folder named oscar-icons.iconset (note the extension on a folder)
|
||||
For more information check "man iconutil" or the Mac Developer documentation at:
|
||||
https://developer.apple.com/library/archive/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html
|
||||
|
||||
macOS .icns file should contain:
|
||||
|
||||
(Icon size in px)
|
||||
|
||||
icon_16x16.png
|
||||
icon_16x16@2x.png (32x32 image)
|
||||
icon_32x32.png
|
||||
icon_32x32@2x.png (64x64 image)
|
||||
icon_128x128.png
|
||||
icon_128x128@2x.png (256x256 image)
|
||||
icon_256x256.png
|
||||
icon_256x256@2x.png (512x512 image)
|
||||
icon_512x512.png
|
||||
icon_512x512@2x.png (1024x1024 image)
|
||||
|
||||
|
||||
The macOS *.icns file can also be edited on Windows using the Greenfish Icon Editor.
|
||||
The .icns file can be edited on Windows using the Greenfish Icon Editor.
|
@ -17,7 +17,7 @@ After installing the required packages:
|
||||
|
||||
$ mkdir OSCAR
|
||||
$ cd OSCAR
|
||||
$ git clone https://gitlab.com/CrimsonNape/OSCAR-code.git
|
||||
$ git clone https://gitlab.com/pholy/OSCAR-code.git
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ qmake ../OSCAR-code/OSCAR_QT.pro.
|
||||
|
@ -1,9 +0,0 @@
|
||||
#! /bin/bash
|
||||
set -e
|
||||
#
|
||||
# delete all the folder not deleted by the purge command
|
||||
|
||||
# at the beginning, there was
|
||||
# application name
|
||||
appli_name="OSCAR_beta"
|
||||
|
@ -1,7 +0,0 @@
|
||||
|
||||
#
|
||||
# delete all the folder not deleted by the purge command
|
||||
|
||||
# now, application name
|
||||
appli_name="OSCAR-test"
|
||||
|
@ -1,16 +0,0 @@
|
||||
|
||||
# begin common script shell
|
||||
# delete all the folder not deleted by the purge command
|
||||
|
||||
echo "appli_name=${appli_name}"
|
||||
|
||||
list=$(find /usr -name ${appli_name} 2>/dev/null)
|
||||
|
||||
for folder in $list
|
||||
do
|
||||
echo "to delete : '$folder'"
|
||||
rm -r $folder
|
||||
done
|
||||
|
||||
# end common script shell
|
||||
|
@ -4,15 +4,12 @@
|
||||
|
||||
echo "appli_name=${appli_name}"
|
||||
|
||||
list=$(find /usr/share -name ${appli_name} 2>/dev/null)
|
||||
list=$(find /usr -name ${appli_name} 2>/dev/null)
|
||||
|
||||
for folder in $list
|
||||
do
|
||||
if [ $folder != '/usr/share/OSCAR' ]
|
||||
then
|
||||
echo "to delete : '$folder'"
|
||||
rm -r $folder
|
||||
fi
|
||||
done
|
||||
|
||||
# end common script shell
|
||||
|
@ -1,10 +0,0 @@
|
||||
#! /bin/bash
|
||||
set -e
|
||||
#
|
||||
# modify by untoutseul05 to search local name for Desktop Folder
|
||||
# the package now suits the fhs
|
||||
|
||||
# application name
|
||||
appli_name="OSCAR-test"
|
||||
|
||||
|
@ -93,7 +93,7 @@ if [[ ${VERSION} == *-* ]]; then
|
||||
if [[ ${PRERELEASE} == *rc* ]]; then
|
||||
RC=1
|
||||
fi
|
||||
VERSION="${VERSION}-${PRERELEASE}"
|
||||
VERSION="${VERSION}~${PRERELEASE}"
|
||||
fi
|
||||
GIT_REVISION=`awk '/#define GIT_REVISION / { gsub(/"/, "", $3); print $3 }' ${SRC}/git_info.h`
|
||||
echo Version: ${VERSION}
|
||||
@ -112,7 +112,7 @@ if [[ -n ${PRERELEASE} && -z ${RC} ]] ; then
|
||||
post_rem="clean_rm-result-NN-test.sh"
|
||||
else
|
||||
post_inst="ln_usrbin-result-NN.sh"
|
||||
pre_rem="rm_usrbin-result-NN.sh"
|
||||
pre_rem="rm_usrbin-result.sh"
|
||||
post_rem="clean_rm-result-NN.sh"
|
||||
fi
|
||||
|
||||
@ -142,15 +142,14 @@ if [ -f "./$deb_file" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
## retrieve packages version for the dependencies
|
||||
# retrieve packages version for the dependencies
|
||||
getPkg libqt5core
|
||||
qtver=$PKGVERS
|
||||
corePkg=$PKGNAME
|
||||
|
||||
getPkg libdouble
|
||||
dblPkg=$PKGNAME
|
||||
|
||||
echo "QT name version " $corePkg $qtver
|
||||
echo "QT version " $qtver
|
||||
echo "DblConv package " $dblPkg
|
||||
|
||||
# clean folders need to create the package
|
||||
@ -242,7 +241,7 @@ fpm --input-type dir --output-type deb \
|
||||
--depends $dblPkg \
|
||||
--depends libpcre16-3 \
|
||||
--depends qttranslations5-l10n \
|
||||
--depends "${corePkg} >= ${qtver}" \
|
||||
--depends "libqt5core5a >= 5.9" \
|
||||
--depends libqt5serialport5 \
|
||||
--depends libqt5xml5 \
|
||||
--depends libqt5network5 \
|
||||
|
@ -47,7 +47,7 @@ if [[ ${VERSION} == *-* ]]; then
|
||||
if [[ ${PRERELEASE} == *rc* ]]; then
|
||||
RC=1
|
||||
fi
|
||||
VERSION="${VERSION}-${PRERELEASE}"
|
||||
VERSION="${VERSION}~${PRERELEASE}"
|
||||
fi
|
||||
GIT_REVISION=`awk '/#define GIT_REVISION / { gsub(/"/, "", $3); print $3 }' ${SRC}/git_info.h`
|
||||
echo Version: ${VERSION}
|
@ -1,9 +0,0 @@
|
||||
#! /bin/bash
|
||||
#
|
||||
# no error is permitted
|
||||
set -e
|
||||
|
||||
# application name
|
||||
appli_name="OSCAR-test"
|
||||
|
||||
|
@ -52,7 +52,7 @@ NOTE: Official builds are currently made with [macOS 10.14 Mojave] and Command-L
|
||||
|
||||
1. Build OSCAR:
|
||||
|
||||
git clone https://gitlab.com/CrimsonNape/OSCAR-code.git
|
||||
git clone https://gitlab.com/pholy/OSCAR-code.git
|
||||
cd OSCAR-code
|
||||
mkdir build
|
||||
cd build
|
||||
|
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 110 KiB |
@ -1,5 +1,5 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf2639
|
||||
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;}
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf840
|
||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;\red28\green28\blue28;\red255\green255\blue255;\red9\green47\blue157;
|
||||
\red10\green0\blue109;\red0\green0\blue0;}
|
||||
{\*\expandedcolortbl;;\cssrgb\c14510\c14510\c14510;\cssrgb\c100000\c100000\c100000;\cssrgb\c2353\c27059\c67843;
|
||||
@ -17,76 +17,81 @@ System requirements\
|
||||
\cf0 \cb1 \
|
||||
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
|
||||
\ls1\ilvl0
|
||||
\f1\b0\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
|
||||
MacOSX 10.13 or later.\cb1 \
|
||||
\b0\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext \'95 }\expnd0\expndtw0\kerning0
|
||||
MacOSX 10.12 or later.\cb1 \
|
||||
\pard\pardeftab720\partightenfactor0
|
||||
|
||||
\f0\b\fs33\fsmilli16800 \cf2 \cb3 \
|
||||
\b\fs33\fsmilli16800 \cf2 \cb3 \
|
||||
\
|
||||
Installation\
|
||||
\pard\pardeftab720\partightenfactor0
|
||||
|
||||
\f1\b0\fs28 \cf2 \cb1 \
|
||||
\b0\fs28 \cf2 \cb1 \
|
||||
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
|
||||
\ls2\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext 1. }\expnd0\expndtw0\kerning0
|
||||
To install OSCAR, you need to copy it to the Applications folder on your computer. To do so:\uc0\u8232 \cb1 \
|
||||
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
|
||||
\ls2\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext A. }\expnd0\expndtw0\kerning0
|
||||
Click on the OSCAR icon and drag it onto the Applications folder icon. Note the green "+" cursor indicating that it will be copied to this location when you unclick:\uc0\u8232 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-4-click.jpg \width15040 \height12440 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
|
||||
}¬}\cf2 \uc0\u8232 \cf4 {{\NeXTGraphic Oscar-mac-5-drag.jpg \width15040 \height12440 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
|
||||
Open the Applications folder in Finder by selecting the "Go" menu and then "Applications": \uc0\u8232 \u8232 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-2-open-applications-folder.jpg \width9620 \height8140 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cf4 {{\NeXTGraphic Oscar-mac-3-opened-applications-folder.jpg \width17640 \height10960 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \
|
||||
\ls2\ilvl1\cb3 \kerning1\expnd0\expndtw0 {\listtext B. }\expnd0\expndtw0\kerning0
|
||||
Arrange the windows so that you can see the OSCAR icon and the Applications folder, as shown below.\uc0\u8232 \cb1 \
|
||||
\ls2\ilvl1\cb3 \kerning1\expnd0\expndtw0 {\listtext C. }\expnd0\expndtw0\kerning0
|
||||
Click on the OSCAR icon and drag it into the Applications window. Note the green "+" cursor indicating that it will be copied to this location when you unclick: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-4-click.jpg \width18520 \height12920 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cf4 {{\NeXTGraphic Oscar-mac-5-drag.jpg \width18520 \height12920 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \
|
||||
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
|
||||
\ls2\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext 2. }\expnd0\expndtw0\kerning0
|
||||
To launch OSCAR for the first time, you will need to grant it permission, otherwise you will receive an error that it "can't be opened because it is from an unidentified developer." To grant OSCAR permission to run:\uc0\u8232 \cb1 \
|
||||
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
|
||||
\ls2\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext A. }Double-click the Applications folder icon and find the new OSCAR icon in the Applications folder.\uc0\u8232 \
|
||||
{\listtext B. }\expnd0\expndtw0\kerning0
|
||||
Hold down the "control" key on your keyboard and click on the new OSCAR icon in the Applications folder. Select "open" from the menu that will appear: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-6-right-click-open.jpg \width17320 \height11180 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
|
||||
\ls2\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext A. }\expnd0\expndtw0\kerning0
|
||||
Hold down the "control" key on your keyboard and click on the new OSCAR icon in the Applications folder. Select "open" from the menu that will appear: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-6-right-click-open.jpg \width18520 \height13460 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \
|
||||
\ls2\ilvl1\cb3 \kerning1\expnd0\expndtw0 {\listtext C. }\expnd0\expndtw0\kerning0
|
||||
A window will appear advising you that "OSCAR is from an unidentified developer" and asking if you want to run it. Click "Open" to grant it permission: \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-7-open-confirm-with-cursor.jpg \width10640 \height6220 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cb3 On macOS Catalina or later, you may first get a window without an "Open" button, so you may need to attempt this twice. You will only need to do this the first time you run OSCAR after installing any new version.\uc0\u8232 \
|
||||
\ls2\ilvl1\cb3 \kerning1\expnd0\expndtw0 {\listtext B. }\expnd0\expndtw0\kerning0
|
||||
A window will appear advising you that "OSCAR is from an unidentified developer" and asking if you want to run it. Click "Open" to grant it permission: \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-7-open-confirm-with-cursor.jpg \width10640 \height6220 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cb3 On macOS Catalina, you may first get a window without an "Open" button, so you may need to attempt this twice. You will only need to do this the first time you run OSCAR after installing any new version.\uc0\u8232 \
|
||||
\pard\tx220\tx720\tx1440\pardeftab720\li720\fi-720\partightenfactor0
|
||||
\ls2\ilvl0\cf2 \cb1 \kerning1\expnd0\expndtw0 {\listtext 3. }
|
||||
\f0\b \cb3 \expnd0\expndtw0\kerning0
|
||||
On macOS Catalina or later
|
||||
\f1\b0 , the first time you import CPAP data from an SD card you will see the following prompt:\uc0\u8232 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-7b-catalina-permissions.jpg \width10640 \height5360 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
|
||||
\b \cb3 \expnd0\expndtw0\kerning0
|
||||
On macOS Catalina
|
||||
\b0 , the first time you import CPAP data from an SD card you will see the following prompt:\uc0\u8232 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-7b-catalina-permissions.jpg \width10640 \height5360 \noorient
|
||||
}¬}\uc0\u8232 \cf2 \cb3 Click "OK" to grant OSCAR permission to read your SD cards.\cb1 \
|
||||
\pard\pardeftab720\partightenfactor0
|
||||
|
||||
\f0\b\fs33\fsmilli16800 \cf2 \cb3 \
|
||||
\b\fs33\fsmilli16800 \cf2 \cb3 \
|
||||
\
|
||||
Troubleshooting\
|
||||
\cf0 \cb1 \
|
||||
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
|
||||
\ls3\ilvl0
|
||||
\f1\b0\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }
|
||||
\f0\b \expnd0\expndtw0\kerning0
|
||||
\b0\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext \'95 }
|
||||
\b \expnd0\expndtw0\kerning0
|
||||
Help, I'm getting the following error!
|
||||
\f1\b0 \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-8-open-error.jpg \width10640 \height6220 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
|
||||
\b0 \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-8-open-error.jpg \width10640 \height6220 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cf6 \cb3 This can happen after installing a new version of OSCAR. Open the Applications folder as shown in step 1 above and then see step 2 above to grant OSCAR permission to run.\uc0\u8232 \
|
||||
\ls3\ilvl0\cf2 \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }
|
||||
\f0\b \expnd0\expndtw0\kerning0
|
||||
Help, I'm running macOS Catalina or later and I'm getting the following warning about malware when I try to open OSCAR!
|
||||
\f1\b0 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-9-catalina-open-1.jpg \width10640 \height6180 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cb3 This is simply an extra step in Catalina and later versions of macOS. Click "Cancel" and then try step 2 again to grant OSCAR permission to run.\uc0\u8232 \cb1 \
|
||||
\ls3\ilvl0\cb3 \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }
|
||||
\f0\b \expnd0\expndtw0\kerning0
|
||||
Help, I'm running macOS Catalina or later and OSCAR won't import anything from my SD card!
|
||||
\f1\b0 \cb1 \uc0\u8232 \u8232 \cb3 You may have accidentally clicked "Don't Allow" at the prompt shown in step 3 above. To fix this, open
|
||||
\f0\b System Preferences
|
||||
\f1\b0 , select
|
||||
\f0\b Security & Privacy
|
||||
\f1\b0 , and select the
|
||||
\f0\b Privacy
|
||||
\f1\b0 tab. Scroll down and select
|
||||
\f0\b Files & Folders
|
||||
\f1\b0 from the list on the left and then check the
|
||||
\f0\b Removable Volumes
|
||||
\f1\b0 box under OSCAR as shown: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-10-catalina-fix-permissions.jpg \width15600 \height13700 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
|
||||
\ls3\ilvl0\cf2 \kerning1\expnd0\expndtw0 {\listtext \'95 }
|
||||
\b \expnd0\expndtw0\kerning0
|
||||
Help, I'm running macOS Catalina and I'm getting the following warning about malware when I try to open OSCAR!
|
||||
\b0 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-9-catalina-open-1.jpg \width10640 \height6180 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cb3 This is simply an extra step in Catalina. Click "Cancel" and then try step 2 again to grant OSCAR permission to run.\uc0\u8232 \cb1 \
|
||||
\ls3\ilvl0\cb3 \kerning1\expnd0\expndtw0 {\listtext \'95 }
|
||||
\b \expnd0\expndtw0\kerning0
|
||||
Help, I'm running macOS Catalina and OSCAR won't import anything from my SD card!
|
||||
\b0 \cb1 \uc0\u8232 \u8232 \cb3 You may have accidentally clicked "Don't Allow" at the prompt shown in step 3 above. To fix this, open
|
||||
\b System Preferences
|
||||
\b0 , select
|
||||
\b Security & Privacy
|
||||
\b0 , and select the
|
||||
\b Privacy
|
||||
\b0 tab. Scroll down and select
|
||||
\b Files & Folders
|
||||
\b0 from the list on the left and then check the
|
||||
\b Removable Volumes
|
||||
\b0 box under OSCAR as shown: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-10-catalina-fix-permissions.jpg \width15600 \height13700 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cb3 You may first need to click on the lock in the bottom-left corner and enter your password in order to make this change.\uc0\u8232 \
|
||||
\ls3\ilvl0\kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }
|
||||
\f0\b I still have questions!
|
||||
\f1\b0 \uc0\u8232 \u8232 \expnd0\expndtw0\kerning0
|
||||
\ls3\ilvl0\kerning1\expnd0\expndtw0 {\listtext \'95 }
|
||||
\b I still have questions!
|
||||
\b0 \uc0\u8232 \u8232 \expnd0\expndtw0\kerning0
|
||||
The most up-to-date version of these instructions can be found at {\field{\*\fldinst{HYPERLINK "http://www.apneaboard.com/wiki/index.php/OSCAR_Installation:_Apple_Mac"}}{\fldrslt http://www.apneaboard.com/wiki/index.php/OSCAR_Installation:_Apple_Mac}}.\
|
||||
}
|
Before Width: | Height: | Size: 21 KiB |
@ -1,6 +1,8 @@
|
||||
#!/bin/bash
|
||||
# Usage: create_dmg target_name file1 [file2...]
|
||||
|
||||
# TODO: add background image and symlink to /Applications, once we have a signed app and no longer need the README
|
||||
|
||||
STAGING_DIR="./Staging"
|
||||
|
||||
# Extract the target name
|
||||
@ -9,11 +11,9 @@ shift
|
||||
|
||||
# Look for the .app in the files to be added to the .dmg
|
||||
APP=""
|
||||
BACKGROUND_IMG=""
|
||||
for src in "$@"
|
||||
do
|
||||
[[ "$src" == *.app ]] && APP="$src"
|
||||
[[ "$src" == *background.png ]] && BACKGROUND_IMG="$src"
|
||||
done
|
||||
|
||||
if [[ ${APP} != "" ]]; then
|
||||
@ -52,69 +52,7 @@ do
|
||||
cp -a "$src" "${STAGING_DIR}/."
|
||||
done
|
||||
|
||||
VOL_NAME="${TARGET} ${VERSION} Installer"
|
||||
echo "Creating .dmg"
|
||||
|
||||
if [[ ${BACKGROUND_IMG} == "" ]]; then
|
||||
hdiutil create -srcfolder "${STAGING_DIR}" -volname "${VOL_NAME}" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDZO -imagekey zlib-level=9 -o "${TARGET}-${VERSION}.dmg" -ov
|
||||
else
|
||||
# Arrange the files needed for a custom Finder display.
|
||||
pushd "${STAGING_DIR}" > /dev/null
|
||||
|
||||
# Add a link to /Applications
|
||||
echo "Add link to /Applications"
|
||||
ln -s /Applications
|
||||
|
||||
# Add a hidden .background folder and move the png to it
|
||||
echo "Move background.png into position"
|
||||
mkdir .background
|
||||
mv background.png .background/background.png
|
||||
|
||||
popd > /dev/null
|
||||
|
||||
# Create a temporary image then mount it so we can tell Finder how to display it.
|
||||
|
||||
TARGET_TMP="${TARGET}-${VERSION}-tmp.dmg"
|
||||
hdiutil create -srcfolder "${STAGING_DIR}" -volname "${VOL_NAME}" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW "${TARGET_TMP}" -ov
|
||||
DEVICE=$(hdiutil attach "${TARGET_TMP}" | egrep '^/dev/' | sed 1q | awk '{print $1}')
|
||||
|
||||
sleep 2
|
||||
|
||||
# tell Finder to resize the window, set the background,
|
||||
# change the icon size, place the icons in the right position, etc.
|
||||
echo '
|
||||
tell application "Finder"
|
||||
tell disk "'${VOL_NAME}'"
|
||||
open
|
||||
set current view of container window to icon view
|
||||
set toolbar visible of container window to false
|
||||
set statusbar visible of container window to false
|
||||
set the bounds of container window to {400, 100, 1040, 610}
|
||||
set viewOptions to the icon view options of container window
|
||||
set arrangement of viewOptions to not arranged
|
||||
set icon size of viewOptions to 72
|
||||
set background picture of viewOptions to file ".background:background.png"
|
||||
set position of item "'${APP}'" of container window to {210, 350}
|
||||
set position of item "Applications" of container window to {430, 350}
|
||||
set position of item "README.rtfd" of container window to {210, 220}
|
||||
close
|
||||
open
|
||||
update without registering applications
|
||||
delay 2
|
||||
end tell
|
||||
end tell
|
||||
' | osascript
|
||||
|
||||
sync
|
||||
|
||||
# unmount it
|
||||
hdiutil detach "${DEVICE}"
|
||||
|
||||
# now make the final image for distribution
|
||||
echo "Creating compressed image"
|
||||
hdiutil convert "${TARGET_TMP}" -format UDZO -imagekey zlib-level=9 -o "${TARGET}-${VERSION}.dmg" -ov
|
||||
|
||||
rm -rf "${TARGET_TMP}"
|
||||
fi
|
||||
hdiutil create -srcfolder "${STAGING_DIR}" -volname "${TARGET}" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDZO -imagekey zlib-level=9 -o "${TARGET}-${VERSION}.dmg" -ov
|
||||
|
||||
rm -rf "${STAGING_DIR}"
|
||||
|
@ -5,25 +5,16 @@ This document is intended to be a brief description of how to install the necess
|
||||
|
||||
On my computers, I have QT installed in E:\\QT and the OSCAR code base in E:\\oscar\\oscar-code. On another computer, they are on the F: drive. All references in the deploy.bat file are relative, so it should run with Oscar-code installed at any location.
|
||||
|
||||
The deploy.bat file is required to build release and install versions of Oscar using QtCreator or with buildall.bat. The buildall.bat compiles , builds Oscar and calls deploy.bat to create release and install version of Oscar.
|
||||
|
||||
There are three sections to this documentation.
|
||||
|
||||
1) Required Programs
|
||||
2) Start Developing using batch files
|
||||
3) Start Developing using QtCreator
|
||||
|
||||
## Required Programs
|
||||
**Required Programs**
|
||||
|
||||
The following programs and files are required to create Windows installers:
|
||||
- Inno Setup 6.0.3 from <http://www.jrsoftware.org/isdl.php>.
|
||||
Download and install innosetup-qsp-6.0.3.exe.
|
||||
- GIT for windows, from <https://gitforwindows.org/>.
|
||||
GIT for Windows adds itself to your path.
|
||||
- Gawk is required.
|
||||
You can use the version included with Git for Windows or install Gawk for Windows from <http://gnuwin32.sourceforge.net/packages/gawk.htm>. The deployment batch file will use the Git for Windows version if gawk.exe is not in your PATH.
|
||||
- QT Open Source edition from <https://www.qt.io/download>.
|
||||
I use the latest patch version in the 5.12 LTS series -- version 5.12.8 at the date this was last updated. More recent versions in the 5.12 series should also work.
|
||||
|
||||
- Inno Setup 6.0.3 from <http://www.jrsoftware.org/isdl.php>. Download and install innosetup-qsp-6.0.3.exe.
|
||||
|
||||
- GIT for windows, from <https://gitforwindows.org/>. GIT for Windows adds itself to your path.
|
||||
|
||||
- QT Open Source edition from <https://www.qt.io/download>. I use the latest patch version in the 5.12 LTS series -- version 5.12.8 at the date this was last updated. More recent versions in the 5.12 series should also work.
|
||||
|
||||
|
||||
**Installing Inno Setup 6**
|
||||
|
||||
@ -49,10 +40,6 @@ GIT for Windows adds itself to your path.
|
||||
|
||||
Create SSH key and upload to GitLab--See https://docs.gitlab.com/ce/ssh/README.html.
|
||||
|
||||
**Installing Gawk (if Git for Windows’ gawk is not used)**
|
||||
|
||||
From <http://gnuwin32.sourceforge.net/packages/gawk.htm>, download setup for “Complete package, except sources”. When downloaded, run the setup program. Accept default options and location. The deployment batch file assumes that gawk.exe is in your PATH, so either add c:\\Program Files (x86)\\gnuwin32\\bin to your PATH or copy the executables to some other directory already in your PATH.
|
||||
|
||||
**Installing QT**
|
||||
|
||||
Go to QT at <https://www.qt.io/download> and download the Open Source edition of the Windows online installer, qt-unified-windows-x86-3.1.1-online.exe. Run the installer:
|
||||
@ -81,107 +68,9 @@ Go to QT at <https://www.qt.io/download> and download the Open Source edition of
|
||||
|
||||
And complete the installation (this also takes a while).
|
||||
|
||||
## Start Developing using batch files
|
||||
**Getting Started Developing Oscar in QT Creator**
|
||||
|
||||
- Requires Qt , Git and Inno setup described in above section.
|
||||
- Batch files buildall.bat and deploy.bat are used.
|
||||
- buildall.bat creates a build folder, compiles and executes deploy.bat
|
||||
- Supports both 32 and 64 bit version with an option to build brokenGl
|
||||
- Supports Qt 5.9.x 5.12.x 5.15.x
|
||||
- Auto detection for which compiler to use.
|
||||
- buildall.bat supports command Line options
|
||||
- deploy.bat creates a release version and an install version.
|
||||
- deploy.bat is also used by QtCreator
|
||||
- The release folder contains OSCAR.exe and all other files necessary to run OSCAR
|
||||
- The install folder contains the installable version of OSCAR...exe
|
||||
- Lists the release and install versions of OSCAR in the build folder.
|
||||
|
||||
#### Validate the installed software.
|
||||
|
||||
- Verify Qt
|
||||
- \<QtVersion\> will be in the form N.N.N example 5.15.2
|
||||
- For example: if Qt is installed at D:\\Qt then
|
||||
- The \<QtFolder\> must contain the following folders: \<QtVersion\> Tools
|
||||
- - \<QtFolder\> is D:\\Qt
|
||||
- Verify Git and Inno are installed
|
||||
- Note: Inno is used to create the Install version of OSCAR
|
||||
- Git for windows provides GAWK.
|
||||
|
||||
#### Examples use the following assumptions
|
||||
|
||||
Except for Inno, Git, Qt, and OSCAR may be located in different locations.
|
||||
|
||||
- Inno installed:
|
||||
- "C:\\Program Files (x86)\\Inno Setup 6"
|
||||
- Git installed:
|
||||
- "C:\\Program Files\\Git"
|
||||
- Qtinstalled:
|
||||
- "D:\\Qt"
|
||||
- OSCAR installed:
|
||||
- "D:\\OSCAR"
|
||||
|
||||
#### Building Commands
|
||||
|
||||
- Build install version for OSCAR for 32 and 64 bit versions
|
||||
- D:\\OSCAR\OSCAR-code\\Building\\Windows\buildall.bat D:\\Qt
|
||||
- Build install version for OSCAR for 64 bit version
|
||||
- D:\\OSCAR\OSCAR-code\\Building\\Windows\buildall.bat D:\\Qt 64
|
||||
- Build Just release version for OSCAR for 64 bit version
|
||||
- D:\\OSCAR\OSCAR-code\\Building\\Windows\buildall.bat D:\\Qt 64 skipInstall
|
||||
- Build release version for OSCAR for 64 bit version - without deleting build folder first
|
||||
- D:\\OSCAR\OSCAR-code\\Building\\Windows\buildall.bat D:\\Qt 64 skipInstall remake
|
||||
- The current folder is not used by the buildall.bat
|
||||
- There is a pause when the build completes.
|
||||
- This insure that the user has a chance to read the build results.
|
||||
- Allows using windows shortcuts to build OSCAR and see results.
|
||||
|
||||
Note: The default folder of Qt is C:\\Qt
|
||||
If the Qt is located at the default folder then the \<QtFolder\> is not required as a command line option.
|
||||
|
||||
#### Windows Shortcuts
|
||||
- Windows shortcuts can be used to execute the build commands or run OSCAR.
|
||||
- Create shortcut to buildall.bat
|
||||
- rename shortcut to indicate its function
|
||||
- edit the short cut property and add options to the Target
|
||||
- Create a shortcut to release version of OSCAR.exe
|
||||
- For offical OSCAR release should not use remake or skipInsall options
|
||||
- Should add skipInstall options for developement, testing, verification
|
||||
- Suggestion is to create the following shortcut example.
|
||||
- use options \<qtfolder\> 64 skipInstall
|
||||
- - shortcut name: "OSCAR Fresh build"
|
||||
- use options \<qtfolder\> 64 skipInstall remake
|
||||
- - shortcut name: "OSCAR quick rebuild"
|
||||
- Create Shortcut to release version of OSCAR.exe (not the install version)
|
||||
- - shortcut name: "RUN OSCAR"
|
||||
|
||||
|
||||
#### Buildall.bat options.
|
||||
- A full list of options can be displayed using the help option.
|
||||
**32** Build 32 bit versions
|
||||
|
||||
**64** Build 64 bit versions
|
||||
|
||||
32 and 64 bit version are built if both 32 and 64 are used or both not used
|
||||
**brokenGL** (special option) to build brokenGL version
|
||||
|
||||
**make** The default option. removes and re-creates the build folder.
|
||||
|
||||
**remake** Execute Make in the existing build folder. Does not re-create the Makefile. Should not be used for Offical OSCAR release
|
||||
|
||||
**skipInstall** skips creating the Install version saving both time and disk space
|
||||
|
||||
**skipDeploy** skips executing the deploy.bat script. just compiles oscar.
|
||||
|
||||
There is a pause when the build completes. This insure that the user has a chance to read the build results.
|
||||
This also allows building using windows shortcuts.
|
||||
1) create a shortcut to buildall.bat
|
||||
edit shortcut's property add the necessary options: D:\\Qt 64 remake skipInstall
|
||||
2) create and shortcut for the make option.
|
||||
3) create a shortcut to the **release** version of OSCAR.exe
|
||||
|
||||
## Start Developing Oscar in Qt Creator
|
||||
|
||||
In browser, log into your account at gitlab.com. Select the Oscar project at https://gitlab.com/CrimsonNape/OSCAR-code. Clone a copy of the repository to a location on your computer.
|
||||
In browser, log into your account at gitlab.com. Select the Oscar project at https://gitlab.com/pholy/OSCAR-code. Clone a copy of the repository to a location on your computer.
|
||||
|
||||
Start QT. There are two QT Oscar project files: OSCAR_QT.pro in the Oscar-code directory, and Oscar.pro in the Oscar-code\\oscar directory. You may use *either* project file. Both will create a running version of Oscar. I find building with Oscar.pro in the Oscar-code\\oscar directory to be very slightly faster, but the difference is negligible.
|
||||
|
||||
|
@ -1,66 +0,0 @@
|
||||
setlocal
|
||||
:::@echo off
|
||||
::: You must set these paths to your QT configuration
|
||||
set qtpath=C:\Qt
|
||||
set qtVersion=5.15.2
|
||||
|
||||
::: This file has been updated to work with Qt 5.15.2 and mingw 8.1.0
|
||||
:::
|
||||
::: Build 32- and 64-bit versions of OSCAR for Windows.
|
||||
::: Includes code to build BrokenGL (LegacyGFX) versions, but that option is not currently used
|
||||
::: Uses Timer 4.0 - Command Line Timer - www.Gammadyne.com - to show time it takes to compile. This could be removed.
|
||||
::: timer /nologo
|
||||
|
||||
:::call :buildone 32 brokengl
|
||||
|
||||
call :buildone 64
|
||||
|
||||
call :buildone 32
|
||||
|
||||
:::call :buildone 64 brokengl
|
||||
::: timer /s /nologo
|
||||
goto :eof
|
||||
|
||||
::: Subroutine to build one version
|
||||
:buildone
|
||||
setlocal
|
||||
::: timer /nologo
|
||||
|
||||
set QTDIR=%qtpath%\%qtversion%\mingw81_%1
|
||||
echo QTDIR is %qtdir%
|
||||
|
||||
set PATH=%qtpath%\Tools\mingw810_%1\bin;%qtpath%\%qtVersion%\mingw81_%1\bin;%PATH%
|
||||
::: echo %PATH%
|
||||
|
||||
set savedir=%cd%
|
||||
|
||||
: Construct name of our build directory
|
||||
set dirname=build-oscar-win_%1_bit
|
||||
if "%2"=="brokengl" (
|
||||
set dirname=%dirname%-LegacyGFX
|
||||
set extraparams=DEFINES+=BrokenGL
|
||||
)
|
||||
echo Build directory is %dirname%
|
||||
|
||||
set basedir=..\..
|
||||
if exist %basedir%\%dirname%\nul rmdir /s /q %basedir%\%dirname%
|
||||
mkdir %basedir%\%dirname%
|
||||
cd %basedir%\%dirname%
|
||||
|
||||
%qtpath%\%qtVersion%\mingw81_%1\bin\qmake.exe ..\oscar\oscar.pro -spec win32-g++ %extraparams% >qmake.log 2>&1 && %qtpath%\Tools\mingw810_%1\bin\mingw32-make.exe qmake_all >>qmake.log 2>&1
|
||||
%qtpath%\Tools\mingw810_%1\bin\mingw32-make.exe -j8 >make.log 2>&1 || goto :makefail
|
||||
|
||||
call ..\Building\Windows\deploy.bat
|
||||
|
||||
::: timer /s /nologo
|
||||
echo === MAKE %1 %2 SUCCESSFUL ===
|
||||
cd %savedir%
|
||||
endlocal
|
||||
exit /b
|
||||
|
||||
:makefail
|
||||
endlocal
|
||||
::: timer /s /nologo
|
||||
echo *** MAKE %1 %2 FAILED ***
|
||||
pause
|
||||
exit /b
|
@ -1,392 +1,60 @@
|
||||
@echo off
|
||||
setlocal
|
||||
:: todo add help / descriptions
|
||||
|
||||
::: This script assumes that it resides OSCAR-data/Building/Windows
|
||||
::: You must defined the path to QT configuration or passit as a parameter
|
||||
::: The version is detected based on the path
|
||||
::: The compiler to use is based on the qt verson.
|
||||
:::@echo off
|
||||
::: CONFIGURATION SECTION
|
||||
::: You must set these paths to your QT configuration
|
||||
set qtpath=E:\Qt
|
||||
set qtVersion=5.12.8
|
||||
|
||||
set QtPath=C:\Qt
|
||||
|
||||
::: END CONFIGURATION SECTION
|
||||
:::============================================
|
||||
:::
|
||||
::: START INITIALIZATIO SECTION
|
||||
echo Command line: %0 %*
|
||||
call :parse %*
|
||||
if NOT %ERRORLEVEL%==0 goto :endProgram
|
||||
::: Build 32- and 64-bit versions of OSCAR for Windows.
|
||||
::: Includes code to build BrokenGL (LegacyGFX) versions, but that option is not currently used
|
||||
::: Uses Timer 4.0 - Command Line Timer - www.Gammadyne.com - to show time it takes to compile. This could be removed.
|
||||
timer /nologo
|
||||
|
||||
set buildErrorLevel=0
|
||||
:::call :buildone 32 brokengl
|
||||
|
||||
::: basedir is OSCAR-code folder - contains folders Building , oscar , ...
|
||||
::: parentdir is the folder that contains OSCAR-code.
|
||||
::: change relative paths into absolute paths
|
||||
::: Get path to this script. then cd parent folder. %cd% retunrs absolute pathname.
|
||||
cd %~dp0 & cd ../../../
|
||||
set parentdir=%cd%
|
||||
set basedir=%parentdir%\OSCAR-code
|
||||
IF NOT "%basedir%"=="%basedir: =%" (
|
||||
call :configError absolute path of OSCAR-code contains a space - not handled by Qt.
|
||||
echo %basedir%
|
||||
goto :endProgram)
|
||||
IF NOT exist "%basedir%\Building" (
|
||||
call :notfound2 OSCAR-code: "%basedir%"
|
||||
goto :endProgram)
|
||||
set baseBuildName=%basedir%\build-oscar-win
|
||||
set OSCARPRO=%basedir%\oscar\oscar.pro
|
||||
set requiredOutSideOscar=
|
||||
IF %doOutSide%==1 (
|
||||
set baseBuildName=%parentdir%\build-oscar-win
|
||||
set OSCARPRO=%basedir%\OSCAR_QT.pro
|
||||
set requiredOutSideOscar=oscar\
|
||||
)
|
||||
::: Construct name of our build directory
|
||||
::: Build Directory can be based on the directories the QtCreator uses for either OSCAR_QT.pro or oscar.pro
|
||||
::: For OSCAR_QT.pro is at parentDir\OSCAR-code\OCASR_QT.pro the build will be at parentDir\BuildDir
|
||||
::: For oscar.pro is at OSCAR-code\oscar\oscar.pro the build will be at OSCAR-code\BuildDir
|
||||
call :buildone 64
|
||||
|
||||
:: check if QtPath from parameters list
|
||||
set defaultQtPath=%QtPath%
|
||||
if NOT "%requestQtPath%"=="" (set QtPath=%requestQtPath%)
|
||||
call :buildone 32
|
||||
|
||||
:: check valid qt folder to find version and tool folders
|
||||
IF NOT exist %QtPath%\nul (
|
||||
call :configError InvalidPath to Qt. QtPath:%QtPath%
|
||||
echo The QtPath can be added as a parameter to %~nx0
|
||||
call :helpInfo
|
||||
goto :endProgram
|
||||
)
|
||||
|
||||
set foundQtVersion=
|
||||
set foundQtToolsDir=
|
||||
set foundQtVersionDir=
|
||||
|
||||
for /d %%i in (%QtPath%\*) do (call :parseQtVersion %%i)
|
||||
if "%foundQtVersion%"=="" (
|
||||
echo :configError %QtPath% is not a valid Qt folder. Must contain version 5.xx.xx or 6.xx.xx folder
|
||||
echo Please enter a valid Qt Path as a parameter
|
||||
call :helpInfo
|
||||
goto :endProgram
|
||||
)
|
||||
if "%foundQtToolsDir%"=="" (
|
||||
. echo :configError %QtPath% is not a valid Qt folder. Must contain a Tools folder
|
||||
echo Please enter a valid Qt Path as a parameter
|
||||
call :helpInfo
|
||||
goto :endProgram
|
||||
)
|
||||
echo Using QtVersion %foundQtVersion%
|
||||
set qtVersion=%foundQtVersion%
|
||||
set QtVersionDir=%QtPath%\%qtVersion%
|
||||
set QtToolsDir=%QtPath%\Tools
|
||||
|
||||
::: Compiler Tools for creating Makefile (linux qmake features)
|
||||
if "5.15."=="%qtVersion:~0,5%" (
|
||||
:: For qt release 5.15
|
||||
set mingwQmakeVersion=mingw81
|
||||
set mingwQmakeTools=mingw810
|
||||
) else (
|
||||
:: For qt previous releases
|
||||
set mingwQmakeVersion=mingw73
|
||||
set mingwQmakeTools=mingw730
|
||||
)
|
||||
::: END INITIALIZATIO SECTION
|
||||
|
||||
|
||||
:::============================================
|
||||
:main
|
||||
::: Start BUILDING ON WINDOWS
|
||||
|
||||
call :startTimer "Start Time is"
|
||||
|
||||
if %do32%==1 (
|
||||
call :buildone 32 || goto :finished
|
||||
if %doBrokenGl%==1 (
|
||||
call :elapseTime "Elapse Time is"
|
||||
call :buildone 32 brokengl || goto :finished
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
if %do64%==1 (
|
||||
if %do32%==1 (call :elapseTime "Elapse Time is")
|
||||
call :buildone 64 || goto :finished
|
||||
if %doBrokenGl%==1 (
|
||||
call :elapseTime "Elapse Time is"
|
||||
call :buildone 64 brokengl || goto :finished
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
:finished
|
||||
|
||||
:: this does work. dir %baseBuildName%*_bit\Installer\OSCAR*.exe
|
||||
echo Start Time is %saveStartTime%
|
||||
call :endTimer "End Time is"
|
||||
|
||||
FOR /D %%j in ("%baseBuildName%*") do (call :sub1 %%j)
|
||||
goto :endProgram
|
||||
::: return to caller
|
||||
:endProgram
|
||||
pause
|
||||
exit /b
|
||||
|
||||
|
||||
|
||||
:::============================================
|
||||
:sub1
|
||||
FOR /F %%i in ("%1\%requiredOutSideOscar%Installer\") do (call :sub2 %%i )
|
||||
FOR /F %%i in ("%1\%requiredOutSideOscar%Release\") do (call :sub2 %%i )
|
||||
goto :eof
|
||||
:sub2
|
||||
:: echo PLACE 2 %1
|
||||
FOR %%k in ("%1*.exe") do (call :sub3 %%k )
|
||||
goto :eof
|
||||
:sub3
|
||||
echo %~t1 %1
|
||||
:::call :buildone 64 brokengl
|
||||
timer /s /nologo
|
||||
goto :eof
|
||||
|
||||
:parseQtVersion
|
||||
set tmpf=%~nx1
|
||||
if "5."=="%tmpf:~0,2%" call :gotVersion %1 %tmpf% & goto :eof
|
||||
if "6."=="%tmpf:~0,2%" call :gotVersion %1 %tmpf% & goto :eof
|
||||
if "Tools"=="%tmpf%" call :gotTools %1 %tmpf% & goto :eof
|
||||
goto :eof
|
||||
:gotTools
|
||||
:: if NOT "%foundQtToolsDir%"=="" (echo Duplicate Qt Versions %1 and %foundQtToolsDir% Error & exit /b 101)
|
||||
set foundQtToolsDir=%1
|
||||
:: echo Found QtTools %1
|
||||
goto :eof
|
||||
:gotVersion
|
||||
:: if NOT "%foundQtVersion%"=="" (echo Duplicate Qt Versions %1 and %foundQtVersion% Error & exit /b 101)
|
||||
set foundQtVersion=%2
|
||||
set foundQtVersionDir=%1
|
||||
:: echo Found QtVersion %foundQtVersion%
|
||||
goto :eof
|
||||
|
||||
:::============================================
|
||||
:parse
|
||||
set do32=0
|
||||
set do64=0
|
||||
set doBrokenGl=0
|
||||
set doOutSide=1
|
||||
set useExistingBuild=0
|
||||
set skipCompile=0
|
||||
set skipDeploy=0
|
||||
set requestQtPath=
|
||||
set toggleEcho="off"
|
||||
set skipInstallCommand=
|
||||
:parseLoop
|
||||
IF "%1"=="" GOTO :exitParseLoop
|
||||
set arg=%1
|
||||
::: echo ^<%arg%^>
|
||||
IF "%arg%"=="32" (set do32=1 & GOTO :endLoop )
|
||||
IF "%arg%"=="64" (set do64=1 & GOTO :endLoop )
|
||||
IF /I "%arg:~0,2%"=="br" (set doBrokenGl=1 & GOTO :endLoop )
|
||||
IF /I "%arg:~0,5%"=="SKIPD" (set skipDeploy=1 & GOTO :endLoop )
|
||||
IF /I "%arg:~0,5%"=="SKIPC" (
|
||||
set useExistingBuild=1
|
||||
set skipCompile=1
|
||||
GOTO :endLoop )
|
||||
IF /I "%arg:~0,2%"=="OU" (set doOutSide=1 & GOTO :endLoop )
|
||||
echo windows cmd.exe workaround 1>nul
|
||||
IF /I "%arg:~0,5%"=="SKIPI" (
|
||||
set skipInstallCommand=skipInstall
|
||||
GOTO :endLoop )
|
||||
IF /I "%arg:~0,2%"=="re" (set useExistingBuild=1 & GOTO :endLoop )
|
||||
IF /I "%arg:~0,2%"=="ve" ( echo on & GOTO :endLoop )
|
||||
IF exist %arg%\Tools\nul IF exist %arg%\Licenses\nul (
|
||||
set requestQtPath=%arg%
|
||||
GOTO :endLoop)
|
||||
IF NOT "%arg:~0,2%"=="he" (
|
||||
echo _
|
||||
echo Invalid argument '%arg%'
|
||||
) else (
|
||||
echo _
|
||||
)
|
||||
call :helpInfo
|
||||
exit /b 123
|
||||
:endLoop
|
||||
SHIFT
|
||||
GOTO :parseLoop
|
||||
:exitParseLoop
|
||||
:: echo requestQtPath ^<%requestQtPath%^>
|
||||
set /a sum=%do32%+%do64%
|
||||
if %sum% == 0 (set do32=1 & set do64=1 )
|
||||
goto :eof
|
||||
|
||||
|
||||
:::============================================
|
||||
::: Timer functions
|
||||
::: Allows personalization of timer functions.
|
||||
::: defaults displaying the curr ent time
|
||||
::: Could Use Timer 4.0 - Command Line Timer - www.Gammadyne.com - to show time it takes to compile.
|
||||
:startTimer
|
||||
set saveStartTime=%TIME%
|
||||
:: timer.exe /nologo
|
||||
echo %~1 %saveStartTime%
|
||||
goto :eof
|
||||
:elapseTime
|
||||
:: timer.exe /r /nologo
|
||||
echo %~1 %TIME%
|
||||
goto :eof
|
||||
:endTimer
|
||||
:: timer.exe /s /et /nologo
|
||||
echo %~1 %TIME%
|
||||
goto :eof
|
||||
|
||||
:::===============================================================================
|
||||
|
||||
:configError
|
||||
set buildErrorLevel=24
|
||||
echo *** CONFIGURATION ERROR ***
|
||||
echo %*
|
||||
goto :eof
|
||||
|
||||
:notfound
|
||||
echo *** CONFIGURATION ERROR ***
|
||||
set buildErrorLevel=25
|
||||
echo NotFound %*
|
||||
goto :eof
|
||||
|
||||
|
||||
|
||||
:::===============================================================================
|
||||
:: Subroutine to "build one" version
|
||||
:buildOne
|
||||
setLocal
|
||||
set bitSize=%1
|
||||
set brokenGL=%2
|
||||
echo Building %1 %2
|
||||
::: echo do not remove this line - batch bug? 1>nul:::
|
||||
|
||||
set QtVersionCompilerDir=%qtVersionDir%\%mingwQmakeVersion%_%bitSize%
|
||||
if NOT exist %QtVersionCompilerDir%\nul (
|
||||
call :buildOneError 21 notfound QtCompiler: %QtVersionCompilerDir%
|
||||
goto :endBuildOne
|
||||
)
|
||||
|
||||
set QtToolsCompilerDir=%QtToolsDir%\%mingwQmakeTools%_%bitSize%
|
||||
if NOT exist %QtToolsCompilerDir% (
|
||||
call :buildOneError 22 notfound QTToolCompiler: %QtToolsCompilerDir%
|
||||
goto :endBuildOne
|
||||
)
|
||||
|
||||
set path=%QtToolsCompilerDir%\bin;%QtVersionCompilerDir%\bin;%PATH%
|
||||
:: echo ===================================
|
||||
:: echo %path%
|
||||
:: echo ===================================
|
||||
:::goto :eof
|
||||
|
||||
::: Verify all configuration parameters
|
||||
::: Subroutine to build one version
|
||||
:buildone
|
||||
setlocal
|
||||
timer /nologo
|
||||
set QTDIR=%qtpath%\%qtversion%\mingw73_%1
|
||||
echo QTDIR is %qtdir%
|
||||
set path=%qtpath%\Tools\mingw730_%1\bin;%qtpath%\%qtversion%\mingw73_%1\bin;%qtpath%\Tools\mingw730_%1\bin;%PATH%
|
||||
set savedir=%cd%
|
||||
|
||||
set dirname=%baseBuildName%
|
||||
if "%brokenGL%"=="brokengl" (
|
||||
: Construct name of our build directory
|
||||
set dirname=build-oscar-win_%1_bit
|
||||
if "%2"=="brokengl" (
|
||||
set dirname=%dirname%-LegacyGFX
|
||||
set extraparams=DEFINES+=BrokenGL
|
||||
)
|
||||
set buildDir=%dirname%_%bitSize%_bit
|
||||
echo Build directory is %dirname%
|
||||
|
||||
set basedir=..\..
|
||||
if exist %basedir%\%dirname%\nul rmdir /s /q %basedir%\%dirname%
|
||||
mkdir %basedir%\%dirname%
|
||||
cd %basedir%\%dirname%
|
||||
|
||||
:: allow rebuild without removing build when a parameter is "SKIP"
|
||||
if NOT exist %buildDir%\nul goto :makeBuildDir
|
||||
if %useExistingBuild%==1 goto :skipBuildDir
|
||||
rmdir /s /q %buildDir%
|
||||
IF NOT %ERRORLEVEL%==0 (
|
||||
call :buildOneError %ERRORLEVEL% error removing Build Folder: %buildDir%
|
||||
GOTO :endBuildOne )
|
||||
|
||||
:makeBuildDir
|
||||
mkdir %buildDir% || (
|
||||
call :buildOneError 23 mkdir %buildDir% failed %ERRORLEVEL%
|
||||
goto :endBuildOne )
|
||||
echo created %buildDir%
|
||||
:skipBuildDir
|
||||
cd %buildDir%
|
||||
if %skipCompile%==1 goto :doDeploy
|
||||
|
||||
|
||||
|
||||
if NOT exist %buildDir%\Makefile goto :createMakefile
|
||||
if %useExistingBuild%==1 goto :skipMakefile
|
||||
if NOT exist %OSCARPRO% {
|
||||
call :buildOneError 24 notfound oscar.pro is not found.
|
||||
goto :endBuildOne)
|
||||
|
||||
:createMakefile
|
||||
echo Creating Oscar's Makefile
|
||||
%QtVersionCompilerDir%\bin\qmake.exe %OSCARPRO% -spec win32-g++ %extraparams% >qmake.log 2>&1 || (
|
||||
call :buildOneError 25 Failed to create Makefile part1
|
||||
type qmake.log
|
||||
goto :endBuildOne)
|
||||
%QtToolsCompilerDir%/bin/mingw32-make.exe qmake_all >>qmake.log 2>&1 || (
|
||||
call :buildOneError 26 Failed to create Makefile part2
|
||||
type qmake.log
|
||||
goto :endBuildOne)
|
||||
:skipMakefile
|
||||
|
||||
:: Always compile build
|
||||
echo Compiling Oscar
|
||||
mingw32-make.exe -j8 >make.log 2>&1 || (
|
||||
call :buildOneError 27 Make Failed
|
||||
type qmake.log
|
||||
goto :endbuildOne
|
||||
)
|
||||
|
||||
|
||||
::: echo skipDeploy: %skipDeploy%
|
||||
:doDeploy
|
||||
if %skipDeploy%==1 goto :endBuildOne
|
||||
|
||||
echo Deploying and Creating Installation Exec in %cd%
|
||||
call "%~dp0\deploy.bat" %skipInstallCommand%
|
||||
set buildErrorLevel=%ERRORLEVEL%
|
||||
|
||||
|
||||
if %buildErrorLevel% == 0 (
|
||||
echo === MAKE %bitSize% %brokenGL% SUCCESSFUL ===
|
||||
goto :endBuildOne
|
||||
) else (
|
||||
call :buildOneError %buildErrorLevel% DEPLOY FAILED
|
||||
goto :endBuildOne
|
||||
)
|
||||
:buildOneError
|
||||
echo *** MAKE %bitSize% %brokenGL% FAILED ***
|
||||
echo %*
|
||||
exit /b %1
|
||||
:endBuildOne
|
||||
cd %savedir% 1>nul 2>nul
|
||||
endLocal
|
||||
exit /b %buildErrorLevel%
|
||||
:::============================================
|
||||
:helpInfo
|
||||
echo _
|
||||
echo The %~nx0 script file creates Release and Install 32 and 64 bit versions of Oscar.
|
||||
echo The %~nx0 has parameters to configure the default options.
|
||||
echo %~nx0 can be executed from the File Manager
|
||||
echo Parameter can be added using a short cut and adding parameters to the shortcut's target.
|
||||
echo _
|
||||
echo OPTIONS DESCRIPTION
|
||||
echo br[okenGl] Builds the brokenGL versions of OSCAR
|
||||
echo 32 Builds just 32 bit versions
|
||||
echo 64 Builds just 64 bit versions
|
||||
echo ^<QtPath^> Overrides the default path (C:\Qt) to QT's installation - contains Tools, License, ... folders
|
||||
echo ou[tside] Default: Build is located outside of git repository. Same as building with OSCAR_QT.pro
|
||||
echo in[side] Build is located inside of git repository. Same as building with oscar.pro
|
||||
echo he[lp] Display this help message
|
||||
echo _
|
||||
echo The offical builds of OSCAR should not use the following options. These facilate development and testing
|
||||
echo re[make] Skips recreating Makefile, but executes make in existing build folder
|
||||
echo skipC[ompile] Skips all compiling. Leaves build folder untouched.
|
||||
echo skipD[eploy] Skip calling deploy.bat. Does not create Release or install versions.
|
||||
echo ve[rbose] Start verbose logging
|
||||
echo _
|
||||
echo ^<Anything^> Displays invalid parameter message and help message then exits.
|
||||
goto :eof
|
||||
|
||||
%qtpath%\%qtversion%\mingw73_%1\bin\qmake.exe ..\oscar\OSCAR.pro -spec win32-g++ %extraparams% >qmake.log 2>&1 && %qtpath%/Tools/mingw730_%1/bin/mingw32-make.exe qmake_all >>qmake.log 2>&1
|
||||
mingw32-make.exe -j8 >make.log 2>&1 || goto :makefail
|
||||
|
||||
call ..\Building\Windows\deploy.bat
|
||||
|
||||
timer /s /nologo
|
||||
echo === MAKE %1 %2 SUCCESSFUL ===
|
||||
cd %savedir%
|
||||
endlocal
|
||||
exit /b
|
||||
|
||||
:makefail
|
||||
endlocal
|
||||
timer /s /nologo
|
||||
echo *** MAKE %1 %2 FAILED ***
|
||||
pause
|
||||
exit /b
|
@ -1,100 +0,0 @@
|
||||
:::
|
||||
::: Build Release and Installer subdirectories of the current shadow build directory.
|
||||
::: The Release directory contains everything needed to run OSCAR.
|
||||
::: The Installer directory contains a single executable -- the OSCAR installer.
|
||||
:::
|
||||
::: DEPLOY.BAT should be run as the last step of a QT Build Release kit.
|
||||
::: QT Shadow build should be specified (this is the QT default).
|
||||
::: A command line parameter is optional. Any text on the command line will be appended
|
||||
::: to the file name of the installer.
|
||||
:::
|
||||
::: Requirements:
|
||||
::: Inno Setup 6 - http://www.jrsoftware.org/isinfo.php, installed to default Program Files (x86) location
|
||||
::: gawk - somewhere in the PATH or in Git for Windows installed in its default lolcation
|
||||
:::
|
||||
::: Deploy.bat resides in .../OSCAR-code/Nuilding/Windows, along with
|
||||
::: buildinstall.iss -- script for Inno Setup to create installer
|
||||
::: getBuildInfo.awk -- gawk script for extracting version fields from various files
|
||||
::: setup.ico -- Icon to be used for the installer.
|
||||
:::
|
||||
::: When building a release version in QT, QT will start this batch file which will prepare
|
||||
::: additional files, run WinDeployQt, and create an installer.
|
||||
:::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
::: toolDir is where the Windows install/deploy tools are located
|
||||
set toolDir=%~dp0
|
||||
:::echo tooldir is %toolDir%
|
||||
|
||||
::: Set shadowBuildDir and sourceDir for oscar_qt.pro vs oscar\oscar.pro projects
|
||||
if exist ..\oscar-code\oscar\oscar.pro (
|
||||
::: oscar_QT.pro
|
||||
set sourceDir=..\oscar-code\oscar
|
||||
set shadowBuildDir=%cd%\oscar
|
||||
) else (
|
||||
::: oscar\oscar.pro
|
||||
set sourceDir=..\oscar
|
||||
set shadowBuildDir=%cd%
|
||||
)
|
||||
echo sourceDir is %sourceDir%
|
||||
echo shadowBuildDir is %shadowBuildDir%
|
||||
|
||||
::: Now copy the base installation control file
|
||||
|
||||
copy %toolDir%buildInstall.iss %shadowBuildDir% || exit 45
|
||||
copy %toolDir%setup.ico %shadowBuildDir% || exit 46
|
||||
:::copy %toolDir%use*.reg %shadowBuildDir% || exit 47
|
||||
|
||||
:::
|
||||
::: If gawk.exe is in the PATH, use it. If not, add Git mingw tools (awk) to path. They cannot
|
||||
::: be added to global path as they break CMD.exe (find etc.)
|
||||
where /q gawk.exe || set PATH=%PATH%;%ProgramW6432%\Git\usr\bin
|
||||
|
||||
::: Create and copy installer control files
|
||||
::: Create file with all version numbers etc. ready for use by buildinstall.iss
|
||||
::: Extract the version info from various header files using gawk and
|
||||
::: #define fields for each data item in buildinfo.iss which will be
|
||||
::: used by the installer script.
|
||||
where /q gawk.exe || set PATH=%PATH%;%ProgramW6432%\Git\usr\bin
|
||||
echo ; This script auto-generated by DEPLOY.BAT >%shadowBuildDir%\buildinfo.iss
|
||||
gawk -f %toolDir%getBuildInfo.awk %sourcedir%\VERSION >>%shadowBuildDir%\buildInfo.iss || exit 60
|
||||
gawk -f %toolDir%getBuildInfo.awk %sourcedir%\git_info.h >>%shadowBuildDir%\buildInfo.iss || exit 62
|
||||
echo %shadowBuildDir% | gawk -f %toolDir%getBuildInfo.awk >>%shadowBuildDir%\buildInfo.iss || exit 63
|
||||
echo #define MySuffix "%1" >>%shadowBuildDir%\buildinfo.iss || exit 64
|
||||
:::echo #define MySourceDir "%sourcedir%" >>%shadowBuildDir%\buildinfo.iss
|
||||
|
||||
::: Create Release directory and subdirectories
|
||||
if exist %shadowBuildDir%\Release\*.* rmdir /s /q %shadowBuildDir%\Release
|
||||
mkdir %shadowBuildDir%\Release
|
||||
cd %shadowBuildDir%\Release
|
||||
copy %shadowBuildDir%\oscar.exe . || exit 71
|
||||
:::copy %shadowBuildDir%\use*.reg . || exit 72
|
||||
|
||||
::: Now in Release subdirectory
|
||||
::: If QT created a help directory, copy it. But it might not have if "helpless" option was set
|
||||
if exist Help\*.* rmdir /s /q Help
|
||||
mkdir Help
|
||||
if exist ..\help\*.qch copy ..\help Help
|
||||
|
||||
if exist Html\*.* rmdir /s /q Html
|
||||
mkdir Html
|
||||
copy ..\html html || exit 80
|
||||
|
||||
if exist Translations\*.* rmdir /s /q Translations
|
||||
mkdir Translations
|
||||
copy ..\translations Translations || exit 84
|
||||
|
||||
::: Run deployment tool
|
||||
windeployqt.exe --force --compiler-runtime --no-translations --verbose 1 OSCAR.exe || exit 87
|
||||
|
||||
::: Clean up unwanted translation files
|
||||
:::For unknown reasons, Win64 build copies the .ts files into the release directory, while Win32 does not
|
||||
if exist Translations\*.ts del /q Translations\*.ts
|
||||
|
||||
::: Create installer
|
||||
cd ..
|
||||
:::"%ProgramFiles(x86)%\Inno Setup 6\compil32" /cc BuildInstall.iss
|
||||
"%ProgramFiles(x86)%\Inno Setup 6\iscc" /Q BuildInstall.iss
|
||||
|
||||
endlocal
|
@ -9,10 +9,10 @@
|
||||
::: to the file name of the installer.
|
||||
:::
|
||||
::: Requirements:
|
||||
::: Inno Setup 6 - http://www.jrsoftware.org/isinfo.php, installed to default Program Files (x86) location:%ProgramFiles(x86)%
|
||||
::: gawk - somewhere in the PATH or in Git for Windows installed with Git\cmd in the path
|
||||
::: Inno Setup 6 - http://www.jrsoftware.org/isinfo.php, installed to default Program Files (x86) location
|
||||
::: gawk - somewhere in the PATH or in Git for Windows installed in its default lolcation
|
||||
:::
|
||||
::: Deploy.bat resides in ...\OSCAR-code\Building\Windows, along with
|
||||
::: Deploy.bat resides in .../OSCAR-code/Nuilding/Windows, along with
|
||||
::: buildinstall.iss -- script for Inno Setup to create installer
|
||||
::: getBuildInfo.awk -- gawk script for extracting version fields from various files
|
||||
::: setup.ico -- Icon to be used for the installer.
|
||||
@ -21,190 +21,78 @@
|
||||
::: additional files, run WinDeployQt, and create an installer.
|
||||
:::
|
||||
@echo off
|
||||
echo Executing %~nx0 %*
|
||||
setlocal
|
||||
set doSkipInstall=0
|
||||
set suffixParam=%1
|
||||
if "%1"=="skipInstall" (
|
||||
set doSkipInstall=1
|
||||
set suffixParam=%2
|
||||
|
||||
::: toolDir is where the Windows install/deploy tools are located
|
||||
set toolDir=%~dp0
|
||||
:::echo tooldir is %toolDir%
|
||||
|
||||
::: Set shadowBuildDir and sourceDir for oscar_qt.pro vs oscar\oscar.pro projects
|
||||
if exist ..\oscar-code\oscar\oscar.pro (
|
||||
::: oscar_QT.pro
|
||||
set sourceDir=..\oscar-code\oscar
|
||||
set shadowBuildDir=%cd%\oscar
|
||||
) else (
|
||||
if "%2"=="skipInstall" set doSkipInstall=1
|
||||
)
|
||||
|
||||
echo doSkipInstall = %doSkipInstall%
|
||||
set errDescription=
|
||||
set errvalue=0
|
||||
::: Current Directory is the shadowBuildDir
|
||||
::: oscar\oscar.pro
|
||||
set sourceDir=..\oscar
|
||||
set shadowBuildDir=%cd%
|
||||
::: toolDir is where the Window install\deploy tools are located
|
||||
cd %~dp0 && cd ..\..\..
|
||||
set parentDir=%cd%
|
||||
if exist %shadowBuildDir%\oscar\nul set shadowBuildDir=%shadowBuildDir%\oscar
|
||||
cd %shadowBuildDir%
|
||||
set toolDir=%parentDir%\OSCAR-code\Building\Windows
|
||||
::: Calculate directory where OSCAR-code is located.
|
||||
set sourceDir=%parentDir%\OSCAR-code\oscar
|
||||
|
||||
echo tooldir is %toolDir%
|
||||
::echo parentDir is %parentDir%
|
||||
:: echo sourceDir is %sourceDir%
|
||||
)
|
||||
echo sourceDir is %sourceDir%
|
||||
echo shadowBuildDir is %shadowBuildDir%
|
||||
if NOT exist %shadowBuildDir%\OSCAR.exe (
|
||||
call :err 41 %shadowBuildDir%\OSCAR.exe does not exist
|
||||
goto :endProgram
|
||||
)
|
||||
|
||||
call :cleanFolder
|
||||
if exist %shadowBuildDir%\buildInfo.iss del /q %shadowBuildDir%\buildInfo.iss || (call :err 42 & goto :endProgram)
|
||||
if exist %shadowBuildDir%\buildInstall.iss del /q %shadowBuildDir%\buildInstall.iss || (call :err 43 & goto :endProgram)
|
||||
if exist %shadowBuildDir%\setup.ico del /q %shadowBuildDir%\setup.ico || (call :err 44 & goto :endProgram)
|
||||
|
||||
call :getGawk
|
||||
|
||||
::: Now have gawk. -- do not delete this line.
|
||||
::: Now copy the base installation control file
|
||||
copy %toolDir%\buildInstall.iss %shadowBuildDir% 1>nul
|
||||
if NOT %ERRORLEVEL%==0 (
|
||||
call :err 45 %ERRORLEVEL% failure to copy %toolDir%\buildInstall.iss to %shadowBuildDir%
|
||||
goto :endProgram
|
||||
)
|
||||
copy %toolDir%\setup.ico %shadowBuildDir% 1>nul
|
||||
if NOT %ERRORLEVEL%==0 (
|
||||
call :err failure to copy %toolDir%\setup.ico to %shadowBuildDir%
|
||||
goto :endProgram
|
||||
)
|
||||
:::copy %toolDir%\use*.reg %shadowBuildDir% || call :err 47 & goto :endProgram
|
||||
|
||||
copy %toolDir%buildInstall.iss %shadowBuildDir% || exit 45
|
||||
copy %toolDir%setup.ico %shadowBuildDir% || exit 46
|
||||
:::copy %toolDir%use*.reg %shadowBuildDir% || exit 47
|
||||
|
||||
:::
|
||||
::: If gawk.exe is in the PATH, use it. If not, add Git mingw tools (awk) to path. They cannot
|
||||
::: be added to global path as they break CMD.exe (find etc.)
|
||||
where /q gawk.exe || set PATH=%PATH%;%ProgramW6432%\Git\usr\bin
|
||||
|
||||
::: Create and copy installer control files
|
||||
::: Create file with all version numbers etc. ready for use by buildinstall.iss
|
||||
::: Extract the version info from various header files using gawk and
|
||||
::: #define fields for each data item in buildinfo.iss which will be
|
||||
::: used by the installer script.
|
||||
where /q gawk.exe || set PATH=%PATH%;%ProgramW6432%\Git\usr\bin
|
||||
echo ; This script auto-generated by DEPLOY.BAT >%shadowBuildDir%\buildinfo.iss
|
||||
gawk -f %toolDir%\getBuildInfo.awk %sourcedir%\VERSION >>%shadowBuildDir%\buildInfo.iss
|
||||
if NOT %ERRORLEVEL%==0 (
|
||||
call :err 60 & goto :endProgram)
|
||||
gawk -f %toolDir%\getBuildInfo.awk %sourcedir%\git_info.h >>%shadowBuildDir%\buildInfo.iss
|
||||
if NOT %ERRORLEVEL%==0 (
|
||||
call :err 62 & goto :endProgram)
|
||||
echo %shadowBuildDir% | gawk -f %toolDir%\getBuildInfo.awk >>%shadowBuildDir%\buildInfo.iss
|
||||
if NOT %ERRORLEVEL%==0 (
|
||||
call :err 63 & goto :endProgram)
|
||||
echo #define MySuffix "%suffixParam%" >>%shadowBuildDir%\buildinfo.iss
|
||||
if NOT %ERRORLEVEL%==0 (
|
||||
call :err 64 & goto :endProgram)
|
||||
gawk -f %toolDir%getBuildInfo.awk %sourcedir%\VERSION >>%shadowBuildDir%\buildInfo.iss || exit 60
|
||||
gawk -f %toolDir%getBuildInfo.awk %sourcedir%\git_info.h >>%shadowBuildDir%\buildInfo.iss || exit 62
|
||||
echo %shadowBuildDir% | gawk -f %toolDir%getBuildInfo.awk >>%shadowBuildDir%\buildInfo.iss || exit 63
|
||||
echo #define MySuffix "%1" >>%shadowBuildDir%\buildinfo.iss || exit 64
|
||||
:::echo #define MySourceDir "%sourcedir%" >>%shadowBuildDir%\buildinfo.iss
|
||||
|
||||
set releaseDir=%shadowBuildDir%\Release
|
||||
|
||||
::: Create Release directory and subdirectories
|
||||
::: if exist %shadowBuildDir%\Release\*.* rmdir /s /q %shadowBuildDir%\Release
|
||||
mkdir %releaseDir%
|
||||
if exist %shadowBuildDir%\Release\*.* rmdir /s /q %shadowBuildDir%\Release
|
||||
mkdir %shadowBuildDir%\Release
|
||||
cd %shadowBuildDir%\Release
|
||||
copy %shadowBuildDir%\oscar.exe . 1>nul
|
||||
if NOT %ERRORLEVEL%==0 (
|
||||
call :err 71 & goto :endProgram)
|
||||
:::copy %shadowBuildDir%\use*.reg . || call :err 72 & goto :endProgram
|
||||
::: if exist %shadowBuildDir%\Installer\*.* rmdir /s /q %shadowBuildDir%\Installer (call :err 73 & goto :endProgram)
|
||||
copy %shadowBuildDir%\oscar.exe . || exit 71
|
||||
:::copy %shadowBuildDir%\use*.reg . || exit 72
|
||||
|
||||
::: starting to copy files
|
||||
::: Now in Release subdirectory
|
||||
::: If QT created a help directory, copy it. But it might not have if "helpless" option was set
|
||||
|
||||
::: if exist Help\*.* rmdir /s /q Help
|
||||
if exist Help\*.* rmdir /s /q Help
|
||||
mkdir Help
|
||||
if exist %shadowBuildDir%\help\*.qch copy %shadowBuildDir%\help %releaseDir%\Help 1>nul || (call :err 80 & goto :endProgram)
|
||||
if exist ..\help\*.qch copy ..\help Help
|
||||
|
||||
::: if exist Html\*.* rmdir /s /q Html
|
||||
if exist Html\*.* rmdir /s /q Html
|
||||
mkdir Html
|
||||
copy %shadowBuildDir%\html %releaseDir%\html 1>nul || (call :err 81 & goto :endProgram)
|
||||
copy ..\html html || exit 80
|
||||
|
||||
::: if exist Translations\*.* rmdir /s /q Translations
|
||||
if exist Translations\*.* rmdir /s /q Translations
|
||||
mkdir Translations
|
||||
copy %shadowBuildDir%\translations %releaseDir%\Translations 1>nul || (call :err 84 & goto :endProgram)
|
||||
copy ..\translations Translations || exit 84
|
||||
|
||||
::: Run deployment tool
|
||||
echo Running Qt Deployment tool
|
||||
windeployqt.exe --release --force --compiler-runtime --no-translations --verbose 1 OSCAR.exe 1>nul 2>nul
|
||||
if %errorlevel% == 0 goto :cleanup
|
||||
::: echo windeployqt error = %errorlevel% executing next version
|
||||
::: Post mingw 8.0 --release Must not be used.
|
||||
windeployqt.exe --force --compiler-runtime --no-translations --verbose 1 OSCAR.exe 1>nul || (call :err 87 & goto :endProgram)
|
||||
windeployqt.exe --release --force --compiler-runtime --no-translations --verbose 1 OSCAR.exe || exit 87
|
||||
|
||||
|
||||
:cleanup
|
||||
::: Clean up unwanted translation files
|
||||
::::For unknown reasons, Win64 build copies the .ts files into the release dir/ectory, while Win32 does not
|
||||
:::For unknown reasons, Win64 build copies the .ts files into the release directory, while Win32 does not
|
||||
if exist Translations\*.ts del /q Translations\*.ts
|
||||
|
||||
|
||||
::: Create installer
|
||||
cd ..
|
||||
IF %doSkipInstall%==1 goto :endProgram
|
||||
echo Creating OSCAR Installation Exec
|
||||
"%ProgramFiles(x86)%\Inno Setup 6\iscc" /Q BuildInstall.iss || (call :err 88 & goto :endProgram)
|
||||
if NOT exist %shadowBuildDir%\Installer\OSCAR*.exe (call :err 89 & goto :endProgram)
|
||||
:endProgram
|
||||
echo Finished %~nx0 %errDescription%
|
||||
exit /b %errvalue%
|
||||
:::: =======================
|
||||
|
||||
:err
|
||||
set errvalue=%1
|
||||
set errDescription=%*
|
||||
echo %~nx0 detected error: %*
|
||||
|
||||
exit /b %errvalue%
|
||||
|
||||
|
||||
::: =====================================================================================
|
||||
|
||||
:getGawk
|
||||
:: check if gawk is already available.
|
||||
where gawk > temp.txt 2>nul
|
||||
set er=%errorlevel%
|
||||
set gawk=<temp.txt
|
||||
if %er%==0 (
|
||||
del temp.txt
|
||||
goto :eof)
|
||||
:: get location of Git command - then find where Git was downloaded.
|
||||
where Git > temp.txt 2>nul
|
||||
set er=%errorlevel%
|
||||
set /p git=<temp.txt
|
||||
del temp.txt
|
||||
if NOT %er%==0 (echo git command not found && exit /b 33)
|
||||
::: found the location of GIT. because git has gawk
|
||||
:: have fullpath of git.exe which is in Git\cmd\git.exe need Git\usr\bin\gawk
|
||||
FOR %%i IN ("%git%") DO (set git=%%~dpi)
|
||||
:: get rid of trailing \ for above command to decend one level
|
||||
FOR %%i IN ("%git:~0,-1%") DO (set git=%%~dpi)
|
||||
set path=%git:~0,-1%\usr\bin;%path%
|
||||
echo %path%
|
||||
goto :eof
|
||||
|
||||
::: =====================================================================================
|
||||
:cleanFolder
|
||||
for /d %%i in (%shadowBuildDir%\*) do (
|
||||
call :handClean %%i
|
||||
)
|
||||
goto :eof
|
||||
:handClean
|
||||
::: Qt adds hidden files to build folder for glang compiler. .qtc_clangd (for windows builds)
|
||||
::: This results is no file name, however it does exist in the full path name %1
|
||||
set xpath=%1
|
||||
set fname=%~n1
|
||||
:: if fname is empty then directory is hidden and is in xpath
|
||||
::: if "%fname%"=="" goto :endhandClean:::
|
||||
if /I "%fname%"=="Help" goto :endhandClean
|
||||
if /I "%fname%"=="Html" goto :endhandClean
|
||||
if /I "%fname%"=="Translations" goto :endhandClean
|
||||
if /I "%fname%"=="Release" goto :cleanDir
|
||||
if /I "%fname%"=="Installer" goto :cleanDir
|
||||
echo Folder %fname% was not cleaned
|
||||
goto :endhandClean
|
||||
:cleanDir
|
||||
echo Cleaning %xpath%
|
||||
rmdir /Q /S %xpath%
|
||||
:endhandClean
|
||||
goto :eof
|
||||
:::"%ProgramFiles(x86)%\Inno Setup 6\compil32" /cc BuildInstall.iss
|
||||
"%ProgramFiles(x86)%\Inno Setup 6\iscc" /Q BuildInstall.iss
|
||||
|
@ -22,7 +22,7 @@ Setting aside the religious wars that can arise over any development methodology
|
||||
### How Do I Develop in a Branch?
|
||||
|
||||
0. Create your own fork of the repo and configure it to stay up-to-date with the upstream repo.
|
||||
* Go to https://gitlab.com/CrimsonNape/OSCAR-code and click on **Fork** in the top right of the project page.
|
||||
* Go to https://gitlab.com/pholy/OSCAR-code and click on **Fork** in the top right of the project page.
|
||||
* In your fork's sidebar, go to **Settings > Repository** then click on **Expand** for "Mirroring repositories".
|
||||
* Enter "https://gitlab.com/pholy/OSCAR-code.git" for the repository **URL**, make sure the mirror is set to **Pull** and then click **Mirror repository**.
|
||||
|
||||
|
0
Htmldocs/about-af.html
Executable file → Normal file
0
Htmldocs/about-ar.html
Executable file → Normal file
0
Htmldocs/about-bg.html
Executable file → Normal file
0
Htmldocs/about-da.html
Executable file → Normal file
0
Htmldocs/about-de.html
Executable file → Normal file
0
Htmldocs/about-el.html
Executable file → Normal file
0
Htmldocs/about-es.html
Executable file → Normal file
0
Htmldocs/about-fi.html
Executable file → Normal file
@ -1,54 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="ph">
|
||||
<head>
|
||||
<meta content="text/html; charset=UTF-8" http-equiv="content-type" >
|
||||
<title>about-ph</title>
|
||||
<meta content="The OSCAR Team" name="author" >
|
||||
<meta content="Translation copyright 2020 by The OSCAR Translation Team" name="description" >
|
||||
</head>
|
||||
<body>
|
||||
<div style="text-align: center;">
|
||||
<h1>Maligayang pagdating sa OSCAR,
|
||||
<br>ang
|
||||
<u>O</u>pen
|
||||
<u>S</u>ource
|
||||
<u>C</u>PAP
|
||||
<u>A</u>nalysis
|
||||
<u>R</u>eporter</h1>Ang software na ito ay idinisenyo upang matulungan ka sa pagsuri ng data na ginawa ng iyong mga aparato ng CPAP at mga kaugnay na kagamitan.
|
||||
<br>
|
||||
<br>Isinalin ito ng mga boluntaryo sa maraming wika. I-click ang tab na Tulong upang baguhin ang ipinakitang wika.
|
||||
<br>
|
||||
<br>
|
||||
<i>Ang anumang browser na nakabase sa Chromium tulad ng
|
||||
<b>Google Chrome</b> o
|
||||
<b>Microsoft Edge Chromium</b> ay kasalukuyang nag-aalok ng pinakamahusay na
|
||||
<u>awtomatikong pagpipilian sa pagsasalin</u>.</i>
|
||||
<br>Makakakita ka ng malawak na tulong sa OSCAR Wiki. Buksan ang
|
||||
<a href="https://translate.google.com/translate?hl=ph&sl=en&tl=tl&u=http://www.apneaboard.com/wiki/index.php/OSCAR_help">http://www.apneaboard.com/wiki/index.php/OSCAR_help</a>.
|
||||
<br>
|
||||
<br>Para sa mga katanungan bisitahin ang
|
||||
<a href="https://translate.google.com/translate?hl=ph&sl=en&tl=tl&u=httpi://www.apneaboard.com">http://www.apneaboard.com</a> o isang lokal na forum ng apnea.
|
||||
<br>
|
||||
<hr style="width: 100%; height: 2px;" >
|
||||
<h1 style="color: red;">MANGYARING MABASA NG MABUTI</h1>
|
||||
<hr style="width: 100%; height: 2px;" >Ang
|
||||
<b>OSCAR</b> ay
|
||||
<b>HINDI</b> isang kapalit para sa karampatang medikal na gabay mula sa iyong Doktor.
|
||||
<br>
|
||||
<br>Dahil sa kakulangan ng dokumentasyon na inilabas ng mga tagagawa tungkol sa mga format ng file, ang kawastuhan ng data na ipinapakita sa OSCAR ay hindi maaaring garantisado.
|
||||
<br>
|
||||
<br>Ang lahat ng mga ulat na nabuo ay para sa
|
||||
<b>PERSONAL GAMIT LAMANG</b> at inilaan na maging tumpak hangga't maaari.
|
||||
<br>
|
||||
<br>Ang mga ulat ng OSCAR ay batay sa data na naiulat ng makina ng CPAP. Ang pagtanggap ng data na ito para sa pagsunod o iba pang mga layunin ay napapailalim sa pagpapasya sa pag-apruba ng ahensya ng pagsusuri.
|
||||
<br>Ang paggamit ng software na ito ay ganap na nasa iyong sariling peligro. Ang mga may-akda ay hindi gaganapin mananagot para sa anumang bagay na may kaugnayan sa paggamit o maling paggamit ng software na ito.
|
||||
<br>
|
||||
<hr style="width: 100%; height: 2px;" >Ang OSCAR ay libre (tulad ng sa kalayaan) na software, na inilabas sa ilalim ng GNU Public Lisensya v3, at walang warranty, at walang ANUMANG nagsasabing fitness para sa anumang layunin.
|
||||
<br>
|
||||
<br>Ang OSCAR ay © 2019-2022 Ang OSCAR Team: isang pangkat ng mga nag-develop ng boluntaryo mula sa Apnea Community at mga miyembro ng maraming mga forum at iba't ibang nasyonalidad.
|
||||
<br>
|
||||
<br>Ang OSCAR ay isang hinango sa programa ng SleepyHead na may copyright © 2011-2018, Mark Watkins.
|
||||
<br></div>
|
||||
</body>
|
||||
</html>
|
0
Htmldocs/about-fr.html
Executable file → Normal file
0
Htmldocs/about-he.html
Executable file → Normal file
0
Htmldocs/about-hu.html
Executable file → Normal file
0
Htmldocs/about-it.html
Executable file → Normal file
0
Htmldocs/about-nl.html
Executable file → Normal file
0
Htmldocs/about-no.html
Executable file → Normal file
0
Htmldocs/about-ph.html
Executable file → Normal file
0
Htmldocs/about-pl.html
Executable file → Normal file
0
Htmldocs/about-pt.html
Executable file → Normal file
0
Htmldocs/about-pt_BR.html
Executable file → Normal file
12
Htmldocs/about-ro.html
Executable file → Normal file
@ -10,7 +10,7 @@
|
||||
<body>
|
||||
<div style="text-align: center;">
|
||||
<h1>Bine ați venit la OSCAR,
|
||||
<br>Reporter de analiză CPAP Open Source</h1>Acest software a fost conceput pentru a vă ajuta să vizualizați datele produse de dispozitivele dvs. CPAP și echipamentele aferente.
|
||||
<br>Reporter de analiză CPAP Open Source</h1>Acest software a fost conceput pentru a vă ajuta să revizuiți datele produse de dispozitivele dvs. CPAP și echipamentele aferente.
|
||||
<br>
|
||||
<br>Voluntarii au tradus-o în mai multe limbi. Faceți clic pe fila Ajutor pentru a schimba limba afișată.
|
||||
<br>
|
||||
@ -32,14 +32,14 @@
|
||||
<br>Din cauza lipsei documentației lansate de producători cu privire la formatele de fișiere, acuratețea datelor afișate în OSCAR nu poate fi în niciun fel garantată.
|
||||
<br>
|
||||
<br>Toate rapoartele generate sunt
|
||||
<b>DOAR PENTRU UTILIZARE PERSONALĂ</b> și ne straduim continuu să fie cât mai precise.
|
||||
<b>DOAR PENTRU UTILIZARE PERSONALĂ</b> și sunt destinate să fie cât mai precise.
|
||||
<br>
|
||||
<br>Rapoartele OSCAR se bazează pe datele raportate de aparatul CPAP. Utilizarea lor în alte scopuri este la latitudinea dvs.
|
||||
<br>Utilizarea acestui software este pe riscul dvs. Autorii nu pot și nu vor fi responsabili pentru nimic legat de utilizarea sau utilizarea corectă sau greșită a acestui software.
|
||||
<br>Rapoartele OSCAR se bazează pe datele raportate de aparatul CPAP. Acceptarea acestor date în conformitate cu alte scopuri este supusă discreției agenției de examinare.
|
||||
<br>Utilizarea acestui software este pe riscul dvs. Autorii nu vor fi responsabili pentru nimic legat de utilizarea sau utilizarea greșită a acestui software.
|
||||
<br>
|
||||
<hr style="width: 100%; height: 2px;" >OSCAR este un software gratuit (ca și în libertate), lansat sub licența publică GNU v3 și nu are nicio garanție și fără NICIO pretenție de calitate pentru niciun scop.
|
||||
<hr style="width: 100%; height: 2px;" >OSCAR este un software gratuit (ca și în libertate), lansat sub licența publică GNU v3 și nu are nicio garanție și fără NICIUNE pretenții de fitness pentru niciun scop.
|
||||
<br>
|
||||
<br>OSCAR este Copyright © 2019-2020 Echipa OSCAR: un grup de dezvoltatori voluntari din comunitatea Apnea și membri ai mai multor forumuri și diferite naționalități.
|
||||
<br>OSCAR este © 2019-2020 Echipa OSCAR: un grup de dezvoltatori voluntari din comunitatea Apnea și membri ai mai multor forumuri și diferite naționalități.
|
||||
<br>
|
||||
<br>OSCAR este un derivat al programului SleepyHead care este protejat de drepturi de autor © 2011-2018, Mark Watkins.
|
||||
<br></div>
|
||||
|
@ -1,54 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta content="text/html; charset=UTF-8" http-equiv="content-type" >
|
||||
<title>about</title>
|
||||
<meta content="The OSCAR Team" name="author" >
|
||||
</head>
|
||||
<body>
|
||||
<h1 style="text-align: center;">Welcome to OSCAR,
|
||||
<br>the
|
||||
<u>O</u>pen
|
||||
<u>S</u>ource
|
||||
<u>C</u>PAP
|
||||
<u>A</u>nalysis
|
||||
<u>R</u>eporter</h1>
|
||||
<div style="text-align: center;">This software has been designed to assist you in reviewing the data produced by your CPAP devices and related equipment.
|
||||
<br>
|
||||
<br>Volunteers translated it into many languages. Click the Help tab to change the displayed language.
|
||||
<br>
|
||||
<br>Any Chromium-based browser like
|
||||
<b>Google Chrome</b> or
|
||||
<b>Microsoft Edge Chromium</b> currently offers the best
|
||||
<u>automatic translation</u> options.
|
||||
<br>You will find extensive help in the OSCAR Wiki. Open
|
||||
<a href="http://www.apneaboard.com/wiki/index.php/OSCAR_Help" >http://www.apneaboard.com/wiki/index.php/OSCAR_Help</a>.
|
||||
<br>
|
||||
<br>For questions visit
|
||||
<a href="http://www.apneaboard.com" >http://www.apneaboard.com</a> or a local apnea forum.
|
||||
<br></div>
|
||||
<hr style="width: 100%; height: 2px;" >
|
||||
<h1 align="center">
|
||||
<font color="red">PLEASE READ CAREFULLY</font>
|
||||
</h1>
|
||||
<hr style="width: 100%; height: 2px;" >
|
||||
<div style="text-align: center;">OSCAR is
|
||||
<b>NOT</b> a substitute for competent medical guidance from your Doctor.
|
||||
<br>
|
||||
<br>Due to the lack of documentation released by manufacturers regarding file formats, the accuracy of data displayed in OSCAR can not in any way be guaranteed.
|
||||
<br>
|
||||
<br>All reports generated are for
|
||||
<b>PERSONAL USE ONLY</b> and are intended to be as accurate as possible.
|
||||
<br>
|
||||
<br>OSCAR reports are based on data reported by the CPAP machine. Acceptance of this data for compliance or other purposes is subject to the approval discretion of the reviewing agency.
|
||||
<br>The use of this software is entirely at your own risk. The authors will not be held liable for
|
||||
<u>anything</u> related to the use or misuse of this software.
|
||||
<br>
|
||||
<hr style="width: 100%; height: 2px;" >OSCAR is free (as in freedom) software, released under the GNU Public License v3, and comes with no warranty, and without ANY claims to fitness for any purpose.
|
||||
<br>
|
||||
<br>OSCAR is © 2019-2022 The OSCAR Team: a group of volunteer developers from the Apnea Community and members of multiple forums and various nationalities.
|
||||
<br>
|
||||
<br>OSCAR is a derivative of the SleepyHead program which is copyright © 2011-2018, Mark Watkins.</div>
|
||||
</body>
|
||||
</html>
|
@ -1,55 +0,0 @@
|
||||
Welcome to OSCAR,
|
||||
the Open Source CPAP Analysis Reporter
|
||||
This software has been designed to assist you in reviewing the data produced by your CPAP devices and related equipment.
|
||||
|
||||
Volunteers translated it into many languages. Click the Help tab to change the displayed language.
|
||||
|
||||
Any Chromium-based browser like Google Chrome or Microsoft Edge Chromium currently offers the best automatic translation options.
|
||||
You will find extensive help in the OSCAR Wiki. Open http://www.apneaboard.com/wiki/index.php/OSCAR_Help.
|
||||
|
||||
For questions visit http://www.apneaboard.com or a local apnea forum.
|
||||
=========================================================================================================================================
|
||||
PLEASE READ CAREFULLY
|
||||
=========================================================================================================================================
|
||||
OSCAR is NOT a substitute for competent medical guidance from your Doctor.
|
||||
|
||||
Due to the lack of documentation released by manufacturers regarding file formats, the accuracy of data displayed in OSCAR can not in any way be guaranteed.
|
||||
|
||||
All reports generated are for PERSONAL USE ONLY and are intended to be as accurate as possible.
|
||||
|
||||
OSCAR reports are based on data reported by the CPAP machine. Acceptance of this data for compliance or other purposes is subject to the approval discretion of the reviewing agency.
|
||||
The use of this software is entirely at your own risk. The authors will not be held liable for anything related to the use or misuse of this software.
|
||||
=========================================================================================================================================
|
||||
OSCAR is free (as in freedom) software, released under the GNU Public License v3, and comes with no warranty, and without ANY claims to fitness for any purpose.
|
||||
|
||||
OSCAR is © 2019-2022 The OSCAR Team: a group of volunteer developers from the Apnea Community and members of multiple forums and various nationalities.
|
||||
|
||||
OSCAR is a derivative of the SleepyHead program which is copyright © 2011-2018, Mark Watkins.
|
||||
----------------------------------------------------------------------------------------------------------------------------------------
|
||||
Добро пожаловать в OSCAR,
|
||||
Open Source CPAP Analysis Reporter
|
||||
Это программное обеспечение было разработано для того, чтобы помочь вам в анализе данных, получаемых вашими CPAP-аппаратами и сопутствующим оборудованием.
|
||||
|
||||
Добровольцы перевели его на многие языки. Перейдите на вкладку "Справка", чтобы изменить отображаемый язык.
|
||||
|
||||
Любой браузер на базе Chromium, например Google Chrome или Microsoft Edge Chromium в настоящее время предлагает лучшие возможности автоматического перевода.
|
||||
Вы найдете обширную помощь в OSCAR Wiki. Откройте http://www.apneaboard.com/wiki/index.php/OSCAR_Help.
|
||||
|
||||
Для получения ответов на вопросы посетите http://www.apneaboard.com или местный форум по апноэ.
|
||||
=========================================================================================================================================
|
||||
ПОЖАЛУЙСТА, ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ
|
||||
=========================================================================================================================================
|
||||
OSCAR НЕ является заменой компетентному медицинскому руководству вашего врача.
|
||||
|
||||
Из-за отсутствия документации, выпущенной производителями в отношении форматов файлов, точность данных, отображаемых в OSCAR, не может быть гарантирована.
|
||||
|
||||
Все создаваемые отчеты предназначены ТОЛЬКО ДЛЯ ЛИЧНОГО ИСПОЛЬЗОВАНИЯ и должны быть максимально точными.
|
||||
|
||||
Отчеты OSCAR основаны на данных, сообщаемых CPAP-аппаратом. Принятие этих данных для соответствия требованиям или других целей зависит от усмотрения проверяющей организации.
|
||||
Использование данного программного обеспечения осуществляется исключительно на ваш страх и риск. Авторы не несут ответственности за что-либо, связанное с использованием или неправильным использованием данного программного обеспечения.
|
||||
========================================================================================================================================
|
||||
OSCAR является свободным (в смысле свободы) программным обеспечением, выпускается под GNU Public License v3, поставляется без гарантий и без ЛЮБЫХ претензий на пригодность для любых целей.
|
||||
|
||||
OSCAR - это © 2019-2022 The OSCAR Team: группа разработчиков-добровольцев из сообщества Apnea и членов многочисленных форумов и различных национальностей.
|
||||
|
||||
OSCAR является производной от программы SleepyHead, авторские права на которую © 2011-2018, Марк Уоткинс.
|
0
Htmldocs/about-sv.html
Executable file → Normal file
0
Htmldocs/about-th.html
Executable file → Normal file
0
Htmldocs/about-tr.html
Executable file → Normal file
0
Htmldocs/about-zh.html
Executable file → Normal file
2
Htmldocs/about.html
Executable file → Normal file
@ -47,7 +47,7 @@
|
||||
<br>
|
||||
<hr style="width: 100%; height: 2px;" >OSCAR is free (as in freedom) software, released under the GNU Public License v3, and comes with no warranty, and without ANY claims to fitness for any purpose.
|
||||
<br>
|
||||
<br>OSCAR is © 2019-2024 The OSCAR Team: a group of volunteer developers from the Apnea Community and members of multiple forums and various nationalities.
|
||||
<br>OSCAR is © 2019-2020 The OSCAR Team: a group of volunteer developers from the Apnea Community and members of multiple forums and various nationalities.
|
||||
<br>
|
||||
<br>OSCAR is a derivative of the SleepyHead program which is copyright © 2011-2018, Mark Watkins.</div>
|
||||
</body>
|
||||
|
@ -8,7 +8,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
<b>This page in other languages:</b>
|
||||
<b>For other languages, go to:</b>
|
||||
<br><a href=http://www.apneaboard.com/wiki/index.php/OSCAR_Credits>http://www.apneaboard.com/wiki/index.php/OSCAR_Credits</a></p>
|
||||
<h1>Credits</h1>
|
||||
<hr style="width: 100%; height: 2px;" >
|
||||
@ -17,7 +17,7 @@
|
||||
<p>
|
||||
<b>OpenSource Libraries</b>
|
||||
<br>OSCAR uses the OpenSource version of the Qt cross-platform toolkit available from
|
||||
<a href="http://qt.io" >https://qt.io</a> which itself draws from many smaller open source libraries. You can read the individual licensing for many of these components that are used under the hood of OSCAR at
|
||||
<a href="http://qt.io" >http://qt.io</a> which itself draws from many smaller open source libraries. You can read the individual licensing for many of these components that are used under the hood of OSCAR at
|
||||
<a href="https://doc.qt.io/qt-5/licenses-used-in-qt.html" >https://doc.qt.io/qt-5/licenses-used-in-qt.html</a></p>
|
||||
<p>
|
||||
<b>Data formats</b>
|
||||
@ -30,21 +30,22 @@
|
||||
<p>
|
||||
<b>Developers</b>
|
||||
<br>
|
||||
Phil Olynyk (pholynyk) (<i>Lead Developer</i>), GuyScharf, sawinglogz, Ray Elliott (LoudSnorer), sgearhart (Crimson Nape), untoutseul05</p>
|
||||
Phil Olynyk (pholynyk) (<i>Lead Developer</i>), GuyScharf, sawinglogz</p>
|
||||
<p>
|
||||
<b>Reporters</b>
|
||||
<br>palerider, TechieHusband</p>
|
||||
<br>AlanE, BrandonA, Crimson Nape, foxfire, Heyns, jeremieb, jaswilliams, palerider, patl</p>
|
||||
<p>
|
||||
<b>Testers</b>
|
||||
<br>
|
||||
Fred Bonjour (Gideon) (<i>Lead Tester</i>), ARBatteiger, ArcherNeedsSleep, bollar, c137jayde, cberistain, coldfeet7, dohm, Expat31, fishfinderG, Frankiboy, geraldbergeron, Gooffy44, Gralli, GuyScharf, Homerec130, JJJ, johnnyb00, jr3586, minderbinder, motorsrunnin, NicoFR, pilothaz, ronfario, Ruud J, ScottZZZ, Shnorky, silverdr, Sleepy Quixote, SleepyHenry, SleepyJoseph, stbrown3rd, Tdragone, TechieHippie, TechieHusband, tedpearson, unidee, untoutseul05</p>
|
||||
Fred Bonjour (Gideon) (<i>Lead Tester</i>), Beej, DeepBreathing, Fastlane, GuyScharf, JJJ, LookingForward, Pollcat, Ruth Catrin, SarcasticDave94,
|
||||
unidee</p>
|
||||
<p>
|
||||
<b>Advisors</b>
|
||||
<br>Sleeprider, srlevine1, harre, rhashimoto </p>
|
||||
<br>aviB, SkepticDoc, Sleeprider, SleepyProgrammer, srlevine1, LunaFerret, harre, mdhamptom, mitchcampbell, rtannerf</p>
|
||||
<p>
|
||||
<b>Translators</b>
|
||||
<br>
|
||||
Arie Klerk (A KLERK) (<i>Translations Team Coordinator, Dutch</i>), 1st.qwerty (<i>Polish</i>), ApneaHero (<i>Czech</i>), C Chan (<i>Chinese Trad</i>), delta (<i>Romanian</i>), dolceitalia (<i>Italian</i>), dprenerov (<i>Bulgarian</i>), drmaestro (<i>Turkish</i>), drol (<i>French</i>), eddyDee (<i>Hebrew</i>), FaureCourtet (<i>French</i>), GregK (<i>Russian/Hebrew</i>), hearsay73 (<i>Filipino</i>), Heyns (<i>Afrikaans</i>), hisaotsu (<i>Japanese</i>), Hypoxic (<i>Greek</i>), k2boys (<i>Korean</i>), Lazer1234 (<i>Swedish</i>), mazingas65 (<i>Italian</i>), Ppja (<i>Spanish</i>), pstrjds (<i>Bulgarian</i>), refurbished (<i>Polish</i>), Ristraus (<i>Brazilian/Portugese</i>), rlabs (<i>Russian</i>), ShaunBlake (<i>British</i>), steffenreitz (<i>German</i>), tolnaiz (<i>Hungarian</i>), torp56 (<i>Danish</i>), unidee (<i>Finnish</i>), untoutseul05 (<i>French</i>), yrnkrn (<i>Hebrew</i>), zellem (<i>Chinese Simplified</i>) <br>
|
||||
Arie Klerk (A KLERK) (<i>Translations Team Coordinator, Dutch</i>), 1st.qwerty (<i>Polish</i>), C Chan (<i>Trad.Chinese)</i>, Caniss (<i>Swedish</i>), delta (<i>Romanian</i>), dolceitalia (<i>Italian</i>), drmaestro (<i>Turkish</i>), drol (<i>French</i>), FaureCourtet (<i>French</i>), GregK (<i>Russian, Hebrew</i>), hearsay73 (<i>Filipino</i>), Heyns (<i>African</i>), Hypoxic (<i>Greek</i>), jaswilliams (<i>British</i>), johanh (<i>Finnish</i>), k2boys (<i>Korean</i>), Lazer1234 (<i>Swedish</i>), Mac_Sheepcounter (<i>German</i>), mazingas65 (<i>Italian</i>), Ppja (<i>Spanish</i>), pstrjds (<i>Bulgarian</i>), refurbished (<i>Polish</i>), Ristraus (<i>Brazilian Portugese</i>), rlabs (<i>Russian</i>), ShaunBlake (<i>British</i>), steffenreitz (<i>German</i>), tolnaiz (<i>Hungarian</i>), unidee (<i>Finnish</i>), untoutseul05 (<i>French</i>), yrnkrn (<i>Hebrew</i>), N-A-N (<i>Thai</i>). <br>
|
||||
<b>Thank you all very much for your continuous effort!</b></p>
|
||||
<p>
|
||||
<b>OSCAR is always looking for help: programmers, testers, or translators. If you are interested, please PM 'Gideon' on the Apnea Board Forum.</b>
|
||||
@ -53,48 +54,5 @@
|
||||
<p>A special mention to the ApneaBoard for providing a development forum for OSCAR and for providing the primary download site for OSCAR at
|
||||
<a href="https://sleepfiles.com/OSCAR" >https://sleepfiles.com/OSCAR</a>.</p>
|
||||
<p>Also acknowledging ApneaBoard for their support of software for CPAP users for many years.</p>
|
||||
|
||||
<hr style="width: 100%; height: 2px;" >
|
||||
<p><b>Third-Party Libraries:</b></p>
|
||||
<p><b>Botan</b><br />
|
||||
Copyright (C) 1999-2020 The Botan Authors<br />
|
||||
All rights reserved.</p>
|
||||
<p>Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:</p>
|
||||
<p>1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions, and the following disclaimer.</p>
|
||||
<p>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.</p>
|
||||
<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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.</p>
|
||||
<p><b>miniz</b><br />
|
||||
Copyright 2013-2014 RAD Game Tools and Valve Software<br />
|
||||
Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC<br />
|
||||
All Rights Reserved.</p>
|
||||
<p>Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:</p>
|
||||
<p>The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.</p>
|
||||
<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -8,160 +8,9 @@
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
<b>This page in other languages:</b>
|
||||
<b>For other languages, go to:</b>
|
||||
<br><a href=http://www.apneaboard.com/wiki/index.php/OSCAR_Release_Notes>http://www.apneaboard.com/wiki/index.php/OSCAR_Release_Notes</a></p>
|
||||
<p>
|
||||
<p>
|
||||
<b>Changes and fixes in OSCAR v1.5.3</b>
|
||||
<br>Portions of OSCAR are © 2019-2024 by
|
||||
<i>The OSCAR Team</i></p>
|
||||
<ul>
|
||||
<li>[fix] No name in user profile - user unable to access data.</li>
|
||||
<li>[fix] Daily Search: Add search at first imstall.</li>
|
||||
<li>[fix] Statstics: Prevent Data Range from listing future dates.</li>
|
||||
<li>[fix] Correct validation for Lanuage and Help files.</li>
|
||||
<li>[added] Daily Search Item: Searh for any Journal item (notes,bookmarks,weight,feelings).</li>
|
||||
<li>[added] Import(restore) Journal.</li>
|
||||
<li>[added] Confgurable Daily Left Side Bar.</li>
|
||||
<li>[update] Credits.html - Member updates. </li>
|
||||
</ul>
|
||||
|
||||
<b>Changes and fixes in OSCAR v1.5.2</b>
|
||||
<br>Portions of OSCAR are © 2019-2024 by
|
||||
<i>The OSCAR Team</i></p>
|
||||
<ul>
|
||||
<li>[fix] VHigh Resolution Control File Location. Now in Oscar Data Folder.</li>
|
||||
<li>[fix] Statistics: Add configuration of alternating colored lines background.</li>
|
||||
<li>[fix] Viatom/Wellue file extension (.dat) was preventing the name from changing the start time</li>
|
||||
<li>[fix] Time display issues encountered when summer time is changed to winter time.</li>
|
||||
<li>[fix] Statistics display mode is now restored when Oscar starts.</li>
|
||||
<li>[fix] Change Language.</li>
|
||||
<li>[fix] iBreeze loader - Various fixes.</li>
|
||||
<li>[fix] Snore Events were lost when sessions had a single snore event.</li>
|
||||
<li>[fix] Graphs were dropped when Oscar was restarted after import.</li>
|
||||
<li>[fix] Prisma pressure settings in the Daily screen now display whole numbers.</li>
|
||||
<li>[fix] OSCAR - automatic reload when parameter changes encountered.</li>
|
||||
<li>[added] Allow renaming of a user profile.</li>
|
||||
<li>[added] Graphs hints at bottom of Daily and Overview Tabs.</li>
|
||||
<li>[added] Statistics:added alternating light green/white background colors for rows.</li>
|
||||
<li>[added] Enhanced and Fixed html zoom in/out feature.</li>
|
||||
<li>[update] Biometrics settings.</li>
|
||||
<li>[update] iBreeze loader: Added progress bar.</li>
|
||||
<li>[update] Statistics Screen - Various improvements.</li>
|
||||
</ul>
|
||||
<p>
|
||||
<b>Changes and fixes in OSCAR v1.5.1</b>
|
||||
<br>Portions of OSCAR are © 2019-2023 by
|
||||
<i>The OSCAR Team</i></p>
|
||||
<ul>
|
||||
<li>[new] Added DS Go Auto 500G150 model</li>
|
||||
<li>[fix] Re-enabled biometrics</li>
|
||||
<li>[fix] Disabled pixmap caching</li>
|
||||
<li>[fix] High Resolution display issue</li>
|
||||
<ul><li> Setting added to Preferences > Appearance to enable/disable High Resolution mode</li>
|
||||
<li> Setting is disabled by default</li></ul>
|
||||
<li>[fix] Checkupdates fixed</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<p>
|
||||
<b>Changes and fixes in OSCAR v1.5.0</b>
|
||||
<br>Portions of OSCAR are © 2019-2023 by
|
||||
<i>The OSCAR Team</i></p>
|
||||
<ul>
|
||||
<li>[new] Added Support for Resmed AirSense 11 models 39483 and 39517</li>
|
||||
<li>[new] Added Clinical and Permissive mode for compliance</li>
|
||||
<li>[new] Added Clinical tab to preferences</li>
|
||||
<li>[new] New CPAP session bar (experimental)</li>
|
||||
<li>[new] Additional settings reported for ResMed bilevel machines</li>
|
||||
<li>[new] Red zero line for flow rate on by default</li>
|
||||
<li>[new] Added dynamic resizing of daily graphs by double clicking graph name</li>
|
||||
<li>[new] Hoffrichter Point 3 machines now supported</li>
|
||||
<li>[new] Resvent machines now supported</li>
|
||||
<li>[new] F&P Sleepstyle now reports Obstructive and Central separately</li>
|
||||
<li>[new] Added Shift+click to zoom into 3 minute window</li>
|
||||
<li>[new] Search function added to Daily Screen left panel</li>
|
||||
<li>[new] Event Flags graph automatically resizes to event types selected</li>
|
||||
<li>[new] Added warning dialog when a session is disabled</li>
|
||||
<li>[new] Added Backup feature for daily/overview graph settings</li>
|
||||
<li>[fix] Fix high resolution display issues</li>
|
||||
<li>[fix] Improved support for PrismaLine bilevel modes</li>
|
||||
<li>[fix] Selected event not showing in PRS1 devicess</li>
|
||||
<li>[fix] Updated wording for View > Reset Graphs</li>
|
||||
<li>[fix] Crash on View > Reset Graphs</li>
|
||||
<li>[fix] Viatom now imports files with .dat extension</li>
|
||||
<li>[fix] Graph combo box updated</li>
|
||||
<li>[fix] Allow Graph and Event combo boxes to remain open after changes.</li>
|
||||
<li>[fix] Overview display of ResMed Oximeter events now works.</li>
|
||||
</ul>
|
||||
<p>
|
||||
<b>Changes and fixes in OSCAR v1.4.0</b>
|
||||
<br>Portions of OSCAR are © 2019-2022 by
|
||||
<i>The OSCAR Team</i></p>
|
||||
<ul>
|
||||
<li>[new] Support for Philips Respironics DreamStation 2:
|
||||
<ul>
|
||||
<li>DreamStation 2 CPAP (410X150C)</li>
|
||||
<li>DreamStation 2 Advanced CPAP (420X150C)</li>
|
||||
<li>DreamStation 2 Auto CPAP Advanced (520X110C, 520X130C, 520X150C)</li>
|
||||
<li>DreamStation 2 Auto CPAP Advanced with P-Flex (521X120C, 521X140C)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>[new] Additional Philips Respironics devices tested and fully supported:
|
||||
<ul>
|
||||
<li>BiPAP Auto (System One 60 Series) (761P)</li>
|
||||
<li>BiPAP autoSV Advanced 30 (System One 60 Series) (961TCA)</li>
|
||||
<li>REMstar Auto (System One) (552P)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>[new] For AutoSet 11, two models were added to the tested list: 39421 and 39485.</li>
|
||||
<li>[fix] Added support for pressure pulse, CA, and VS on BiPAP autoSV Advanced 30 (System One 60 Series) (960T).</li>
|
||||
<li>[fix] Fixed pressure settings scale on BiPAP autoSV Advanced 30 (System One 60 Series) (960T).</li>
|
||||
<li>[fix] For all ResMed devices, square plot (no smoothing) has been forced on all 2 second pressure graphs.</li>
|
||||
<li>[fix] File Export Sessions now exports statistics session data properly.</li>
|
||||
<li>[fix] Fixed a rare crash on import when encountering corrupted Philips Respironics directories.</li>
|
||||
<li>[fix] Fixed an incorrect warning message when importing some CheckMe O2 Max data.</li>
|
||||
</ul>
|
||||
<p>
|
||||
<b>Changes and fixes in OSCAR v1.3.1</b>
|
||||
<br>Portions of OSCAR are © 2019-2022 by
|
||||
<i>The OSCAR Team</i></p>
|
||||
<ul>
|
||||
<li>[new] Additional Philips Respironics devices tested and fully supported:
|
||||
<ul>
|
||||
<li>REMstar Plus (System One 60 Series) (261P) <i>provides only limited information</i></li>
|
||||
<li>REMstar Pro (System One 60 Series) (460PBT)</li>
|
||||
<li>DreamStation CPAP Pro with Auto-Trial (401X150)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>[new] Choose AS11 data instead of AS10 data if both are present on the SD card.</li>
|
||||
<li>[new] Add support for new settings codes in recently manufactured 700X110 DreamStations.</li>
|
||||
<li>[new] Add 95% flow limitation to Therapy Efficacy section on Statistics page.</li>
|
||||
<li>[new] Add date range option to Statistics page.</li>
|
||||
<li>[new] Improve appearance and operation of event types and graphs comboboxes on Daily and Overview pages.</li>
|
||||
<li>[new] Skip first 20 seconds of TiVol, RR, and MinVent in ResMed loader.</li>
|
||||
<li>[new] Add ResMed 39423 Canadian Autoset to tested list.</li>
|
||||
<li>[new] Show channel description when hovering over index name on Daily page.</li>
|
||||
<li>[new] Add full support for Wellue CheckMe O2 Max.</li>
|
||||
<li>[fix] Fix pressure values for AutoForHer mode on AS1x.</li>
|
||||
<li>[fix] Fix missing oximetry and motion waveforms on Overview pages.</li>
|
||||
<li>[fix] Fix rare problem of minimum pressure shown as zero on Overview and Statistics pages.</li>
|
||||
<li>[fix] Update Statistics page after editing profile.</li>
|
||||
<li>[fix] Correct selection of CPAP and AutoForHer modes for ResMed AS11 modes.</li>
|
||||
<li>{fix} Skip first 10 seconds of pressure data for ResMed grapths and statistics.</li>
|
||||
<li>[fix] Correct SleepStyle machines sometimes identified as Icon machines.</li>
|
||||
<li>[fix] Improve event flag position in flow graph for DV6 machines.</li>
|
||||
<li>[fix] --datadir option now allows fully qualified paths on Mac and Linux.</li>
|
||||
<li>[fix] Correct value display on exact data points, and near session boundaries with drift.</li>
|
||||
<li>[fix] Link to translations in Credits and Release Notes html is now translated to selected language.</li>
|
||||
<li>[fix] Continue to import DreamStation 1 data even if there is (unsupported) DreamStation 2 data on the SD card.</li>
|
||||
<li>[fix] Automatic Oximetry Cleanup no longer drops samples or supplemental oximeter channels such as movement.</li>
|
||||
<li>[fix] Replace BRICK! message with better wording.</li>
|
||||
<li>[fix] Add footer to first page of printed Statistics report.</li>
|
||||
<li>[fix] Work around a Qt bug on Fedora 35 that caused hangs when selecting files.</li>
|
||||
<li>[fix] Update copyright notices in html files.</li>
|
||||
</ul>
|
||||
<p>
|
||||
<b>Changes and fixes in OSCAR v1.3.0</b>
|
||||
<br>Portions of OSCAR are © 2019-2021 by
|
||||
<i>The OSCAR Team</i></p>
|
||||
|
6
README
@ -8,9 +8,9 @@ under the GPL version 3 license. See the file COPYING for those details.
|
||||
|
||||
SleepyHead was written by Mark Watkins (aka Jedimark), an Australian software developer afflicted with sleep apnea.
|
||||
|
||||
SleepyHead was copyright (C) 2011-2018 by Mark Watkins
|
||||
SleepyHead was copyright (C) 2011-2018 by Mark Watkins <mark@jedimark.net>
|
||||
|
||||
Portions of OSCAR are copyright (c) 2019-2022 The OSCAR Team <oscar@oscar-team.org>
|
||||
Portions of OSCAR are copyright (c) 2019, 2020 by The OSCAR Team <oscar@oscar-team.org>
|
||||
|
||||
Minimum Requirements:
|
||||
-------------------
|
||||
@ -39,7 +39,7 @@ is incredibly un-motivational, and incredibly disrespectful of all the work he p
|
||||
|
||||
If you plan on reselling any derivatives of SleepyHead, I specifically request that you give due credit and
|
||||
link back, mentioning clearly in your advertising material, software installer and about screens that your
|
||||
derivative "is based on the free and open-source software SleepyHead ,
|
||||
derivative "is based on the free and open-source software SleepyHead available from http://sleepyhead.jedimark.net,
|
||||
developed and copyright by Mark Watkins (C) 2011-2018."
|
||||
|
||||
It is not enough to reference that your derivative "is based on GPL software".
|
||||
|
@ -1,371 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Copyright (c) 2023-2024 The OSCAR Team
|
||||
|
||||
Find text files with the word "Copyright" ending with a year (4 digits) range like 2019-2022 and then
|
||||
followed by a string containing OSCAR. The script changes the 2 year to the current year.
|
||||
This script will search all files in the folder where the script is run:
|
||||
1) From the Git top-level folder. The script will also access the translation files and Build file.
|
||||
2) From the oscar folder (that contains oscar.pro). The script will also access the code files.
|
||||
"""
|
||||
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import time
|
||||
import filecmp
|
||||
import inspect
|
||||
import sys
|
||||
|
||||
current_year = time.localtime().tm_year
|
||||
top_dir = subprocess.check_output(['git', 'rev-parse', '--show-toplevel']).decode('utf-8').strip()
|
||||
relative_sync_dir = os.path.join(top_dir, '..')
|
||||
verbose = False
|
||||
changed = False
|
||||
list = False
|
||||
list_ignored = False
|
||||
testExecution = False
|
||||
debug = False
|
||||
single = True
|
||||
|
||||
def validStr(str) :
|
||||
if str is None: return False
|
||||
tmp = not str
|
||||
return not tmp
|
||||
|
||||
def validYear(year) :
|
||||
if year is None: return False
|
||||
try:
|
||||
tmp = int(year)
|
||||
except ValueError:
|
||||
return False
|
||||
tmp = int(year)
|
||||
return ((tmp > 2000) and (tmp < 2099) )
|
||||
|
||||
class Stats:
|
||||
def __init__(self, field1 , field2 , field3 , field4 , field5 ):
|
||||
self.files_date_changed = field1
|
||||
self.files_date_already_changed = field2
|
||||
self.files_needing_inspection = field3
|
||||
self.files_ignored = field4
|
||||
self.files_total = field5
|
||||
|
||||
statistics = Stats(0,0,0,0,0)
|
||||
|
||||
class LineInfo:
|
||||
def __init__(self, field1 , field2 , field3 , field4 , field5 , field6 , field7 , field8):
|
||||
self.lineNumber = field1 ## read only
|
||||
self.line = field2
|
||||
self.baseName = field3 ## read only
|
||||
self.fileModified = field4 ## numberlines Modified
|
||||
self.lineModified = field5 ## True if line changed
|
||||
self.validSignature = field6 ## only set to true
|
||||
self.needReview = field7 ## only set to true
|
||||
self.countUpdated = field8 ## only set to true
|
||||
|
||||
def processLine(lineInfo):
|
||||
lineInfo.lineModified = False;
|
||||
baseNameLine = f"{lineInfo.baseName}[{lineInfo.lineNumber}]"
|
||||
baseNameLineJ = baseNameLine.ljust(30)
|
||||
|
||||
## read only properties
|
||||
global relative_sync_dir, current_year, verbose , list , debug , statstics
|
||||
|
||||
#{ limit processing line
|
||||
## where * is any string
|
||||
## SOURCE: * Copyright (c) YEAR - YEAR The OSCAR Team *
|
||||
## Modifiable: * Copyright * YEAR - YEAR The OSCAR Team *
|
||||
## Modifiable: * YEAR - YEAR The OSCAR Team *
|
||||
## Modifiable: * YEAR - YEAR OSCAR Team *
|
||||
## Modifiable/WARNING: * YEAR - YEAR OSCAR *
|
||||
## WARNING: * YEAR OSCAR *
|
||||
## WARNING: * copyright * OSCAR *
|
||||
|
||||
## find copyright or year
|
||||
next = 0;
|
||||
pattern = r'copyright'
|
||||
copyright = False
|
||||
|
||||
match = re.search(pattern,lineInfo.line,re.IGNORECASE)
|
||||
if (match) :
|
||||
copyright = True
|
||||
###next = match.end()
|
||||
|
||||
pattern = r'(^.*?)((\d{4})\s*(-)?\s*)(\d{4})?(\s*(The)?\s*(OSCAR)\s*(Team)?\b)(.*$)' #works
|
||||
match = re.search(pattern,lineInfo.line,re.IGNORECASE)
|
||||
if match : ## match
|
||||
## match of oscar copyright signature
|
||||
#{
|
||||
before = match.group(1)
|
||||
year1dash = match.group(2)
|
||||
year1 = match.group(3)
|
||||
dash = match.group(4)
|
||||
year2 = match.group(5)
|
||||
theoscarteam = match.group(6)
|
||||
the = match.group(7)
|
||||
oscar = match.group(8)
|
||||
team = match.group(9)
|
||||
after = match.group(10)
|
||||
|
||||
if debug :
|
||||
sum = f"""
|
||||
before 1 {before}
|
||||
year1dash 2 {year1dash}
|
||||
year1 3 {year1}
|
||||
dash 4 {dash}
|
||||
year2 5 {year2}
|
||||
TheOscarTeam 6 {theoscarteam}
|
||||
The 7 {the}
|
||||
OSCAR 8 {oscar}
|
||||
Team 9 {team}
|
||||
after 10 {after}
|
||||
"""
|
||||
print(sum);
|
||||
newCopyright = f"{year1dash}{current_year}{theoscarteam}"
|
||||
newLine = f"{before}{newCopyright}{after}\n"
|
||||
|
||||
# Note OSCAR is always valid and is assumed to be true
|
||||
validOscarCopyright = validYear(year1) and validStr(dash) and validYear(year2)
|
||||
|
||||
if (validOscarCopyright) :
|
||||
if not lineInfo.needReview : lineInfo.needReview = not ( copyright or validStr(the) or validStr(team) )
|
||||
fileValidOscarCopyright = True
|
||||
if (str(year2)==str(current_year)) :
|
||||
if not lineInfo.countUpdated :
|
||||
statistics.files_date_already_changed += 1
|
||||
lineInfo.countUpdated = True
|
||||
if verbose : print(f" Already Modified: {baseNameLineJ}")
|
||||
return;
|
||||
else : ## need to modify date
|
||||
if not lineInfo.countUpdated :
|
||||
statistics.files_date_changed += 1
|
||||
lineInfo.countUpdated = True
|
||||
if verbose : print(f" File Modified: {baseNameLineJ}{newLine}",end='')
|
||||
lineInfo.lineModified = True;
|
||||
lineInfo.fileModified += 1;
|
||||
if debug :
|
||||
print(lineInfo.line)
|
||||
print(newLine)
|
||||
lineInfo.line = newLine
|
||||
return;
|
||||
#} end match of oscar copyright signature
|
||||
#} End limit processing line
|
||||
|
||||
def processFile(filename):
|
||||
"""
|
||||
Process the file to update the copyright year if necessary.
|
||||
Args:
|
||||
filename: name of the file to be processed
|
||||
"""
|
||||
global relative_sync_dir, current_year, verbose , list , debug , statistics
|
||||
|
||||
statistics.files_total = statistics.files_total +1
|
||||
relativeFileName = os.path.relpath(filename, relative_sync_dir)
|
||||
baseName = os.path.basename(filename)
|
||||
lines = []
|
||||
lineNumber = 0;
|
||||
fileValidOscarCopyright = False
|
||||
needReview = False
|
||||
|
||||
##if debug : print(f" processFile {baseName}")
|
||||
|
||||
lineInfo = LineInfo(0 , "" , baseName , 0 , False , False ,False , False);
|
||||
codeFile = baseName.endswith(".cpp") or baseName.endswith(".h")
|
||||
try:
|
||||
#{ try loop
|
||||
## skip files not be changed.
|
||||
## only do .h and .cpp files and not third party software or auto generated files.
|
||||
if (
|
||||
## Folder that should be excluded
|
||||
("thirdparty" in filename.split(os.path.sep)) or ("tests" in filename.split(os.path.sep)) or ("git_info.h" == baseName )
|
||||
## file types that should be excluded
|
||||
or (not codeFile)
|
||||
## for test or (not ("aboutdialog.h" == baseName or "newprofile.cpp" == baseName) )
|
||||
) :
|
||||
statistics.files_ignored += 1
|
||||
lineInfo.countUpdated = True ## insure a file is counted only once.
|
||||
if verbose or list_ignored: print(f" Ignored: {relativeFileName}")
|
||||
return;
|
||||
## Common encodings to try: utf-8 , latin-1 , iso-8859-1 , cp1252 , utf-16 , big5 , gb18030 .
|
||||
if debug : print(f" processFile {baseName}")
|
||||
with open(filename, 'r+' , encoding="latin-1") as file_handle: ## latin-1 works utf-8 fails
|
||||
#{ start of processing all lines
|
||||
## only search until 1st signature is found. except newprofile where copyright is displayed
|
||||
single = not ( "newprofile.cpp" == baseName )
|
||||
if (list) :
|
||||
print(f" Opened {relativeFileName}")
|
||||
elif (not single or lineInfo.fileModified == 0) :
|
||||
for line in file_handle:
|
||||
#{ start of processing line
|
||||
lineNumber += 1
|
||||
lineInfo.lineModified = False
|
||||
lineInfo.lineNumber = lineNumber;
|
||||
lineInfo.line = line;
|
||||
processLine(lineInfo);
|
||||
if lineInfo.lineModified :
|
||||
lines.append(lineInfo.line)
|
||||
else :
|
||||
lines.append(line)
|
||||
#} end processing line
|
||||
if ( lineInfo.needReview or (codeFile and not lineInfo.countUpdated) ) :
|
||||
print(f" Copyright Check {relativeFileName}")
|
||||
if not lineInfo.countUpdated :
|
||||
statistics.files_needing_inspection += 1
|
||||
lineInfo.countUpdated = True
|
||||
if lineInfo.fileModified == 0:
|
||||
if not lineInfo.countUpdated : ## already modified is excluded here.
|
||||
statistics.files_ignored += 1
|
||||
lineInfo.countUpdated = True
|
||||
if verbose or list_ignored: print(f" Ignored: {relativeFileName}")
|
||||
return;
|
||||
if testExecution : return
|
||||
file_handle.seek(0)
|
||||
file_handle.truncate()
|
||||
file_handle.write(''.join(lines))
|
||||
file_handle.flush()
|
||||
os.fsync(file_handle.fileno())
|
||||
return
|
||||
#} end of processing all lines
|
||||
except IOError as e:
|
||||
print(f" File Open Error: {relativeFileName}")
|
||||
#} try loop
|
||||
|
||||
def isBinaryFile(file_path):
|
||||
with open(file_path, 'rb') as f:
|
||||
for block in f:
|
||||
if b'\0' in block:
|
||||
return True
|
||||
return False
|
||||
|
||||
"""
|
||||
def xisBinaryFile(file_path):
|
||||
result = subprocess.run(['file', '--mime-encoding', file_path], capture_output=True, text=True)
|
||||
return 'binary' in result.stdout
|
||||
"""
|
||||
|
||||
def handleFile(file_path):
|
||||
"""
|
||||
Process the file if it is a text file.
|
||||
Args:
|
||||
file_path (str): The path of the file to be processed.
|
||||
"""
|
||||
if os.path.isfile(file_path) :
|
||||
if not isBinaryFile(file_path):
|
||||
processFile(file_path)
|
||||
|
||||
def help_menu():
|
||||
"""
|
||||
Display the help menu.
|
||||
"""
|
||||
help_msg = """
|
||||
Help Menu
|
||||
{}
|
||||
|
||||
# uses the current year to modifed files with copyright.
|
||||
# This script modifies the first line with the following signature (case insensative).
|
||||
YYYY and ZZZZ are sequences of 4 digits representing year
|
||||
asterisk " means any sequence of charaters.
|
||||
# signature: * YYYY-ZZZZ * OSCAR *
|
||||
# The script will only change ZZZZ to the current year. No file size change.
|
||||
# No other lines will be modfied.
|
||||
|
||||
--help displays help message
|
||||
--execute allows script to execute
|
||||
-v --verbose displays status for each file accessed
|
||||
--changed displays each line modified
|
||||
--list displays filenames to be search and exits
|
||||
--ignored List files that are ignored.
|
||||
--test Execute code but skips the actual file write
|
||||
--year <year> Overrides system year
|
||||
--code starts working at OSCAR-code/oscar
|
||||
--base starts working at OSCAR-code
|
||||
<folderName> starts working at OSCAR-code/folderName
|
||||
defaultFolder starts working at the current folder
|
||||
""".format(__file__)
|
||||
print(help_msg)
|
||||
exit()
|
||||
|
||||
####################################################################################################
|
||||
|
||||
start_dir = os.getcwd().rstrip('\n')
|
||||
options = ""
|
||||
execute = None
|
||||
verbose = False
|
||||
list = False
|
||||
|
||||
while len(sys.argv) > 1:
|
||||
arg = sys.argv.pop(1)
|
||||
options += " " + arg
|
||||
if arg == '--help':
|
||||
help_menu()
|
||||
elif arg == '--debug' or arg == '-d':
|
||||
debug = True
|
||||
elif arg == '--verbose' or arg == '-v':
|
||||
verbose = True
|
||||
elif arg == '--changed':
|
||||
changed = True
|
||||
elif arg == '--year':
|
||||
year = 0;
|
||||
if len(sys.argv) > 1:
|
||||
tmp = sys.argv.pop(1)
|
||||
try:
|
||||
year = int(tmp)
|
||||
if not validYear(year) :
|
||||
print("Invalid year: " + tmp)
|
||||
help_menu()
|
||||
current_year = year;
|
||||
except ValueError:
|
||||
year =0
|
||||
print("Invalid year: " + tmp)
|
||||
help_menu()
|
||||
elif arg == '--test':
|
||||
testExecution = True
|
||||
elif arg == '--list':
|
||||
list = True
|
||||
elif arg == '--ignored':
|
||||
list_ignored = True
|
||||
elif arg == '--code':
|
||||
## starts form topLevelFolder/oscar
|
||||
start_dir = os.path.join(top_dir, 'oscar')
|
||||
elif arg == '--execute':
|
||||
execute = True
|
||||
elif arg == '--base':
|
||||
start_dir = top_dir
|
||||
else:
|
||||
tmp_dir = os.path.join(top_dir, arg)
|
||||
if os.path.isdir(tmp_dir):
|
||||
start_dir = tmp_dir
|
||||
else:
|
||||
print("Invalid Parameter: " + arg)
|
||||
help_menu()
|
||||
|
||||
relativeStartDir = os.path.relpath(start_dir, relative_sync_dir)
|
||||
|
||||
if execute is None:
|
||||
print("Requires --execute parameter to execute script")
|
||||
help_menu()
|
||||
exit()
|
||||
|
||||
|
||||
# Call the walk function to process all files recursively
|
||||
for root, dirs, files in os.walk(start_dir):
|
||||
for file in files:
|
||||
filename=os.path.join(root, file)
|
||||
if os.path.isfile(filename) and not isBinaryFile(filename):
|
||||
processFile(filename)
|
||||
|
||||
print(f"{os.path.basename(__file__)} {relativeStartDir} {options}")
|
||||
|
||||
if list : exit()
|
||||
|
||||
summary = f"""
|
||||
Summary of Text Files searched {statistics.files_total}
|
||||
Number of files with date modified: {statistics.files_date_changed}
|
||||
Number of files with date already modified: {statistics.files_date_already_changed}
|
||||
Number of files with Copyright Check: {statistics.files_needing_inspection}
|
||||
Number of files ignored {statistics.files_ignored}
|
||||
"""
|
||||
|
||||
print(summary)
|
||||
|
||||
|
8097
Translations/Afrikaans.af.ts
Executable file → Normal file
7342
Translations/Arabic.ar.ts
Executable file → Normal file
7508
Translations/Bulgarian.bg.ts
Executable file → Normal file
7581
Translations/Chinese.zh_CN.ts
Executable file → Normal file
8411
Translations/Chinese.zh_TW.ts
Executable file → Normal file
10734
Translations/Czech.cz.ts
15675
Translations/Dansk.da.ts
Executable file → Normal file
7475
Translations/Deutsch.de.ts
Executable file → Normal file
14493
Translations/English.en_UK.ts
Executable file → Normal file
8242
Translations/Espaniol.es.ts
Executable file → Normal file
7646
Translations/Espaniol.es_MX.ts
Executable file → Normal file
8493
Translations/Filipino.fil.ts → Translations/Filipino.ph.ts
Executable file → Normal file
8298
Translations/Francais.fr.ts
Executable file → Normal file
8196
Translations/Greek.el.ts
Executable file → Normal file
9564
Translations/Hebrew.he.ts
Executable file → Normal file
7993
Translations/Italiano.it.ts
Executable file → Normal file
8019
Translations/Korean.ko.ts
Executable file → Normal file
8629
Translations/Magyar.hu.ts
Executable file → Normal file
7891
Translations/Nederlands.nl.ts
Executable file → Normal file
7484
Translations/Norsk.no.ts
Executable file → Normal file
8240
Translations/Polski.pl.ts
Executable file → Normal file
8810
Translations/Portugues.pt.ts
Executable file → Normal file
7571
Translations/Portugues.pt_BR.ts
Executable file → Normal file
7551
Translations/Romanian.ro.ts
Executable file → Normal file
8182
Translations/Russkiy.ru.ts
Executable file → Normal file
7443
Translations/Suomi.fi.ts
Executable file → Normal file
8366
Translations/Svenska.sv.ts
Executable file → Normal file
8829
Translations/Thai.th.ts
Executable file → Normal file
8161
Translations/Turkish.tr.ts
Executable file → Normal file
90
Translations/qt/oscar_qt_af.ts
Normal file
@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="af_ZA" sourcelanguage="en">
|
||||
<context>
|
||||
<name>QShortcut</name>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation>Nee</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation>Ja</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QPlatformTheme</name>
|
||||
<message>
|
||||
<source>OK</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&No</source>
|
||||
<translation>&Nee</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Yes</source>
|
||||
<translation>&Ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help</source>
|
||||
<translation>Hulp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation>Oopmaak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save</source>
|
||||
<translation>Stoor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abort</source>
|
||||
<translation>Afbreek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Apply</source>
|
||||
<translation>Toepas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<translation>Sluit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset</source>
|
||||
<translation>Herstel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Retry</source>
|
||||
<translation>Weer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore Defaults</source>
|
||||
<translation>Herstel verstek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
<translation>Kanselleer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ignore</source>
|
||||
<translation>Ignoreer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>N&o to All</source>
|
||||
<translation>N&ee vir almal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save All</source>
|
||||
<translation>Spaar alles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Discard</source>
|
||||
<translation>Weggooi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes to &All</source>
|
||||
<translation>Ja vir &alles</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
90
Translations/qt/oscar_qt_ar.ts
Normal file
@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="ar">
|
||||
<context>
|
||||
<name>QShortcut</name>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation>لا</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation>نعم</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QPlatformTheme</name>
|
||||
<message>
|
||||
<source>OK</source>
|
||||
<translation>حسنًا</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&No</source>
|
||||
<translation>&لا</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Yes</source>
|
||||
<translation>&نعم</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help</source>
|
||||
<translation>مساعدة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation>افتح</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save</source>
|
||||
<translation>احفظ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abort</source>
|
||||
<translation>أجهض</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Apply</source>
|
||||
<translation>طبّق</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<translation>أغلق</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset</source>
|
||||
<translation>صفّر</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Retry</source>
|
||||
<translation>حاول مجدّدًا</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore Defaults</source>
|
||||
<translation>استعد الافتراضيّات</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
<translation>ألغِ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ignore</source>
|
||||
<translation>تجاهل</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>N&o to All</source>
|
||||
<translation>لا لل&كلّ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save All</source>
|
||||
<translation>احفظ الكلّ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Discard</source>
|
||||
<translation>ارفض</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes to &All</source>
|
||||
<translation>ن&عم للكلّ</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
90
Translations/qt/oscar_qt_bg.ts
Normal file
@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="bg">
|
||||
<context>
|
||||
<name>QShortcut</name>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation>Не</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation>Да</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QPlatformTheme</name>
|
||||
<message>
|
||||
<source>OK</source>
|
||||
<translation>Добре</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&No</source>
|
||||
<translation>&Не</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Yes</source>
|
||||
<translation>&Да</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help</source>
|
||||
<translation>Помощ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation>Отваряне</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save</source>
|
||||
<translation>Запазване</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abort</source>
|
||||
<translation>Прекъсване</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Apply</source>
|
||||
<translation>Прилагане</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<translation>Затваряне</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset</source>
|
||||
<translation>Нулиране</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Retry</source>
|
||||
<translation>Повторен опит</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore Defaults</source>
|
||||
<translation>По подразбиране</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
<translation>Отказ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ignore</source>
|
||||
<translation>Пренебрегване</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>N&o to All</source>
|
||||
<translation>Н&е за всички</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save All</source>
|
||||
<translation>Запазване на всичко</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Discard</source>
|
||||
<translation>Отхвърляне</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes to &All</source>
|
||||
<translation>Да за &всички</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
90
Translations/qt/oscar_qt_da.ts
Normal file
@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="da">
|
||||
<context>
|
||||
<name>QShortcut</name>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation>Ingen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation>Ja</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QPlatformTheme</name>
|
||||
<message>
|
||||
<source>OK</source>
|
||||
<translation>Okay</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&No</source>
|
||||
<translation>&Ingen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Yes</source>
|
||||
<translation>&Ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help</source>
|
||||
<translation>Hjælp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation>Åben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save</source>
|
||||
<translation>Gemme</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abort</source>
|
||||
<translation>Abort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Apply</source>
|
||||
<translation>Ansøge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<translation>Tæt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset</source>
|
||||
<translation>Nulstil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Retry</source>
|
||||
<translation>Prøve igen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore Defaults</source>
|
||||
<translation>Gendanne standardindstillingerne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
<translation>Afbestille</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ignore</source>
|
||||
<translation>Ignorere</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>N&o to All</source>
|
||||
<translation>&Ingen for alle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save All</source>
|
||||
<translation>Gem alle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Discard</source>
|
||||
<translation>Kassér</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes to &All</source>
|
||||
<translation>Ja til &alle</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
90
Translations/qt/oscar_qt_de.ts
Normal file
@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="de">
|
||||
<context>
|
||||
<name>QShortcut</name>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation>Nein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation>Ja</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QPlatformTheme</name>
|
||||
<message>
|
||||
<source>OK</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&No</source>
|
||||
<translation>&Nein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Yes</source>
|
||||
<translation>&Ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help</source>
|
||||
<translation>Hilfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation>Öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save</source>
|
||||
<translation>Speichern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abort</source>
|
||||
<translation>Abbrechen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Apply</source>
|
||||
<translation>Anwenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<translation>Schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset</source>
|
||||
<translation>Zurücksetzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Retry</source>
|
||||
<translation>Wiederholen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore Defaults</source>
|
||||
<translation>Voreinstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
<translation>Abbrechen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ignore</source>
|
||||
<translation>Ignorieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>N&o to All</source>
|
||||
<translation>N&ein, keine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save All</source>
|
||||
<translation>Alles speichern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Discard</source>
|
||||
<translation>Verwerfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes to &All</source>
|
||||
<translation>Ja, &alle</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
90
Translations/qt/oscar_qt_el.ts
Normal file
@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="el_GR">
|
||||
<context>
|
||||
<name>QShortcut</name>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation>Οχι</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation>Ναί</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QPlatformTheme</name>
|
||||
<message>
|
||||
<source>OK</source>
|
||||
<translation>Εντάξει</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&No</source>
|
||||
<translation>&Οχι</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Yes</source>
|
||||
<translation>&Ναί</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help</source>
|
||||
<translation>Βοήθεια</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation>Ανοιξε</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save</source>
|
||||
<translation>Σώσει</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abort</source>
|
||||
<translation>Αποβάλλω</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Apply</source>
|
||||
<translation>Ισχύουν</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<translation>Κλείσε</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset</source>
|
||||
<translation>Επαναφορά</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Retry</source>
|
||||
<translation>Προσπαθησε ξανα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore Defaults</source>
|
||||
<translation>Επαναφέρετε τις προεπιλογές</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
<translation>Ματαίωση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ignore</source>
|
||||
<translation>Αγνοώ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>N&o to All</source>
|
||||
<translation>N&o σε όλους</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save All</source>
|
||||
<translation>Αποθήκευση όλων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Discard</source>
|
||||
<translation>Απορρίπτω</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes to &All</source>
|
||||
<translation>Ν&αι σε όλα</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|