Skip to content

Commit 0b7b6bf

Browse files
Merge branch 'lcb-repeat_temp_reg' into vm-refactor
Conflicts: libfoundation/include/foundation-auto.h
2 parents f5203c5 + 2893b80 commit 0b7b6bf

242 files changed

Lines changed: 2142 additions & 1635 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitmodules

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[submodule "ide"]
22
path = ide
3-
url = https://github.com/runrev/livecode-ide
3+
url = https://github.com/livecode/livecode-ide
44
branch = develop
55
[submodule "thirdparty"]
66
path = thirdparty
7-
url = https://github.com/runrev/livecode-thirdparty
7+
url = https://github.com/livecode/livecode-thirdparty
88
branch = develop
99
[submodule "libcpptest/googletest"]
1010
path = libcpptest/googletest

.travis.yml

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66
sudo: required
77
dist: trusty
88

9+
# Build on both Linux and OSX
10+
os:
11+
- linux
12+
- osx
13+
914
language: c++
1015

1116
# Skip vulcan CI branches
@@ -23,14 +28,38 @@ env:
2328
- secure: "R/JfoBMrkhCGWhfWM1m3gPHuLtMBlp2SIK1R9BaPbRsbGBUJmAg9V0g0YXSaw8SVxoyuiL/jsLtHPfDeub9oTxrYydew+6/4KaoQdG7EGXQJfBhH2f0ag/hTKJfXnmZX9jMMnTxPf5Axjq+w4E6sKkU2+d1oAJRhrqzYNwDhVlc="
2429
- CXX_STD: "c++11"
2530

31+
# Install any required tools
32+
before_install:
33+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] ; then sudo gem install xcpretty ; fi
34+
2635
# Set up the source tree by fetching Linux-specific prebuilt objects
27-
install: (cd prebuilt && ./fetch-libraries.sh linux)
36+
install:
37+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then (cd prebuilt && ./fetch-libraries.sh linux) ; fi
38+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] ; then (cd prebuilt && ./fetch-libraries.sh mac) ; fi
2839

2940
# Bootstrap the LCB compiler, build the default target set and run a
3041
# the default test suite.
3142
script: >
32-
if [ "${COVERITY_SCAN_BRANCH}" != "1" ]; then
33-
make all-linux && make check-linux
43+
case "${TRAVIS_OS_NAME}" in
44+
linux)
45+
BUILD_PLATFORM=linux ;
46+
CHECK_COMMAND=xvfb-run ;
47+
LICENSE_DIR="${HOME}/.runrev/licenses" ;
48+
;;
49+
osx)
50+
BUILD_PLATFORM=mac ;
51+
CHECK_COMMAND= ;
52+
LICENSE_DIR="${HOME}/Library/Application Support/RunRev/Licenses" ;
53+
export XCODEBUILD="set -o pipefail && xcodebuild" ;
54+
export XCODEBUILD_FILTER="| xcpretty" ;
55+
;;
56+
esac
57+
58+
if [[ -z "${COVERITY_SCAN_BRANCH}" ]]; then
59+
mkdir -p "${LICENSE_DIR}" &&
60+
touch "${LICENSE_DIR}/livecode-firstrun.lcf" &&
61+
make all-${BUILD_PLATFORM} &&
62+
${CHECK_COMMAND} make check-${BUILD_PLATFORM}
3463
fi
3564
3665
addons:
@@ -61,3 +90,4 @@ addons:
6190
- libpopt-dev
6291
- libesd0-dev
6392
- liblcms-dev
93+
- xvfb

INSTALL-android.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ Otherwise, you'll need to build a target in the gyp-generated makefiles:
112112

113113
**Note:** The following information is provided for reference purposes. It should be possible to build LiveCode for Android on any modern Linux desktop distribution or recent version of Mac OS.
114114

115-
The Linux build environment used for compiling LiveCode for Android is based on Debian Squeeze x86-64, with the following additional packages installed:
115+
The Linux build environment used for compiling LiveCode for Android is based on Debian Wheezy x86-64, with the following additional packages installed:
116116

117117
* git
118118
* bzip2

INSTALL-linux.md

Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,8 @@ However, if you wish to compile something more specific than "everything", you'l
4747

4848
**Note:** The following information is provided for reference purposes. It should be possible to build and run LiveCode on any modern Linux desktop distribution.
4949

50-
### Linux x86-64
51-
52-
The x86-64 Linux build environment used for compiling LiveCode is based on Debian Wheezy.
50+
The x86-64 and x86 Linux build environments used for compiling
51+
LiveCode are based on Debian Wheezy.
5352

5453
The following additional packages are installed:
5554

@@ -74,45 +73,3 @@ The following additional packages are installed:
7473
* pkg-config
7574
* libgtk2.0-dev
7675
* zip
77-
78-
### Linux x86
79-
80-
The x86 Linux build environment used for compiling LiveCode is based on Debian Squeeze.
81-
82-
The following additional packages are installed:
83-
84-
* build-essential
85-
* automake
86-
* libtool
87-
* zlib1g-dev
88-
* gettext
89-
* pkg-config
90-
* libtiff-dev
91-
* libpng-dev
92-
* libatk1.0-dev
93-
* libpango1.0-dev
94-
* libcairo2-dev
95-
* libxext-dev
96-
* libffi-dev
97-
* curl
98-
* flex
99-
* bison
100-
* libx11-dev
101-
* libxext-dev
102-
* libxrender-dev
103-
* libxft-dev
104-
* libxinerama-dev
105-
* libxv-dev
106-
* libxcursor-dev
107-
* libfreetype6-dev
108-
* libpopt-dev
109-
* libesd0-dev
110-
* liblcms-dev
111-
* pkgconfig
112-
* zip
113-
114-
In addition, LiveCode requires a more modern version of GTK+ than is available in the Debian Squeeze repositories. The following packages are compiled and installed from source:
115-
116-
* [GLib 2.34.3](http://ftp.gnome.org/pub/gnome/sources/glib/2.34/glib-2.34.3.tar.xz)
117-
* [GDK-PixBuf 2.26.5](http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.26/gdk-pixbuf-2.26.5.tar.xz)
118-
* [GTK+ 2.24.23](http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.23.tar.xz)

INSTALL-mac.md

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22

33
![LiveCode Community Logo](http://livecode.com/wp-content/uploads/2015/02/livecode-logo.png)
44

5-
Copyright © 2015 LiveCode Ltd., Edinburgh, UK
5+
Copyright © 2015-2016 LiveCode Ltd., Edinburgh, UK
66

77
## Dependencies
88

99
### Required dependencies
1010

1111
You must install Xcode. This will allow you to build LiveCode for:
1212

13-
* OS X desktop systems
1413
* iPhone OS
1514
* iPhoneSimulator
1615

17-
You will not be able to compile the "revvideograbber" extension.
16+
You will not be able to compile the OS X desktop version of LiveCode
17+
unless you install some older OS X SDKs; see the next section for details.
1818

1919
### Optional dependencies
2020

@@ -24,26 +24,36 @@ Create a directory on your hard disk (say, `/Applications/Xcode-Dev/`).
2424

2525
Download and install each of the following versions of Xcode, placing their app bundles into the specified paths:
2626

27-
| Xcode version | App path |
28-
| ------------- | -------- |
29-
| 6.3.1 | /Applications/Xcode-Dev/Xcode_6_3_1.app |
30-
| 6.3 | /Applications/Xcode-Dev/Xcode_6_3.app |
31-
| 6.2 | /Applications/Xcode-Dev/Xcode_6_2.app |
32-
| 5.1.1 | /Applications/Xcode-Dev/Xcode_5_1_1.app |
33-
| 4.3.3 | /Applications/Xcode-Dev/Xcode_4_3_3.app |
27+
| Xcode version | App path |
28+
| ------------- | --------------------------------------- |
29+
| 8.0 | /Applications/Xcode-Dev/Xcode_8_0.app |
30+
| 7.2.1 | /Applications/Xcode-Dev/Xcode_7_2_1.app |
31+
| 6.2 | /Applications/Xcode-Dev/Xcode_6_2.app |
32+
| 5.1.1 [1] | /Applications/Xcode-Dev/Xcode_5_1_1.app |
33+
| 4.3.3 [2] | /Applications/Xcode-Dev/Xcode_4_3_3.app |
34+
35+
Notes:
36+
1. Required for OS X build excluding "revvideograbber" extension
37+
2. Required for "revvideograbber" extension
3438

3539
Make sure you run and verify each of the versions of Xcode. Download and install any extra SDKs you need using the "Xcode → Preferences → Downloads" window.
3640

3741
Make `/Applications/Xcode-Dev/Xcode.app` a symlink to the latest version of Xcode available. For example, run:
3842

3943
cd /Applications/Xcode-Dev
40-
ln -s Xcode_6_3_1.app Xcode.app
44+
ln -s Xcode_8_0_0.app Xcode.app
4145

4246
After checking out the LiveCode git repository, you need to run a tool to finalize the Xcode setup and to make sure all of the necessary SDKs are installed. If LiveCode is checked out to `~/git/livecode`, run:
4347

4448
cd /Applications/Xcode-Dev/
4549
sh ~/git/livecode/tools/setup_xcode_sdks.sh
4650

51+
If you want the setup tool to copy the required SDKs out of the Xcode
52+
app bundles (so that you can safely delete all but the latest Xcode to
53+
save disk space), you can run:
54+
55+
sh ~/git/livecode/tools/setup_xcode_sdks.sh --cache
56+
4757
## Configuring LiveCode
4858

4959
### Build environment

Installer/package.txt

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -624,35 +624,15 @@ component Runtime.iOS
624624
file ios:iphonesimulator10.0/mobile-disable-ats-template.plist as "DisableATS.plist"
625625
file ios:iphonesimulator10.0/[email protected] as "Default4InchSplash.png" base ios:[email protected]
626626
file ios:iphonesimulator10.0/fontmap as "fontmap"
627-
into "[[ToolsFolder]]/Runtime/iOS/Device-8_2" place
628-
executable ios:iphoneos8.2/standalone-mobile[[BaseEditionTagLower]].ios-engine as Standalone
629-
executable ios:iphoneos8.2/revsecurity.ios-extension as RevSecurity
630-
executable ios:iphoneos8.2/revpdfprinter.ios-extension as RevPdfPrinter
631-
executable ios:iphoneos8.2/revzip.ios-extension as RevZip
632-
executable ios:iphoneos8.2/revxml.ios-extension as RevXml
633-
executable ios:iphoneos8.2/revdb.ios-extension as RevDb
634-
executable ios:iphoneos8.2/dbsqlite.ios-extension as DbSqlite
635-
executable ios:iphoneos8.2/dbmysql.ios-extension as DbMysql
636-
file ios:iphoneos8.2/mobile-device-template.plist as "Settings.plist"
637-
file ios:iphoneos8.2/mobile-remote-notification-template.plist as "RemoteNotificationSettings.plist"
638-
file ios:iphoneos8.2/mobile-url-scheme-template.plist as "URLSchemeSettings.plist"
639-
file ios:iphoneos8.2/mobile-splashscreen-template.plist as "SplashscreenSettings.plist"
640-
file ios:iphoneos8.2/template-entitlements.xcent as "Entitlements.xcent"
641-
file ios:iphoneos8.2/template-beta-report-entitlement.xcent as "BetaReportEntitlement.xcent"
642-
file ios:iphoneos8.2/template-remote-notification-entitlements.xcent as "RemoteNotificationEntitlements.xcent"
643-
file ios:iphoneos8.2/template-remote-notification-store-entitlements.xcent as "RemoteNotificationStoreEntitlements.xcent"
644-
file ios:iphoneos8.2/mobile-disable-ats-template.plist as "DisableATS.plist"
645-
file ios:iphoneos8.2/[email protected] as "Default4InchSplash.png" base ios:[email protected]
646-
file ios:iphoneos8.2/fontmap as "fontmap"
647627
into "[[ToolsFolder]]/Runtime/iOS/Device-9_2" place
648-
executable ios:iphoneos9.2/standalone-mobile[[BaseEditionTagLower]].ios-engine as Standalone base ios:iphoneos8.2/standalone-mobile[[BaseEditionTagLower]].lcext
649-
executable ios:iphoneos9.2/revsecurity.ios-extension as RevSecurity base ios:iphoneos8.2/revsecurity.lcext
650-
executable ios:iphoneos9.2/revpdfprinter.ios-extension as RevPdfPrinter base ios:iphoneos8.2/revpdfprinter.lcext
651-
executable ios:iphoneos9.2/revzip.ios-extension as RevZip base ios:iphoneos8.2/revzip.lcext
652-
executable ios:iphoneos9.2/revxml.ios-extension as RevXml base ios:iphoneos8.2/revxml.lcext
653-
executable ios:iphoneos9.2/revdb.ios-extension as RevDb base ios:iphoneos8.2/revdb.lcext
654-
executable ios:iphoneos9.2/dbsqlite.ios-extension as DbSqlite base ios:iphoneos8.2/dbsqlite.lcext
655-
executable ios:iphoneos9.2/dbmysql.ios-extension as DbMysql base ios:iphoneos8.2/dbmysql.lcext
628+
executable ios:iphoneos9.2/standalone-mobile[[BaseEditionTagLower]].ios-engine as Standalone
629+
executable ios:iphoneos9.2/revsecurity.ios-extension as RevSecurity
630+
executable ios:iphoneos9.2/revpdfprinter.ios-extension as RevPdfPrinter
631+
executable ios:iphoneos9.2/revzip.ios-extension as RevZip
632+
executable ios:iphoneos9.2/revxml.ios-extension as RevXml
633+
executable ios:iphoneos9.2/revdb.ios-extension as RevDb
634+
executable ios:iphoneos9.2/dbsqlite.ios-extension as DbSqlite
635+
executable ios:iphoneos9.2/dbmysql.ios-extension as DbMysql
656636
file ios:iphoneos9.2/mobile-device-template.plist as "Settings.plist"
657637
file ios:iphoneos9.2/mobile-remote-notification-template.plist as "RemoteNotificationSettings.plist"
658638
file ios:iphoneos9.2/mobile-url-scheme-template.plist as "URLSchemeSettings.plist"
@@ -665,14 +645,14 @@ component Runtime.iOS
665645
file ios:iphoneos9.2/[email protected] as "Default4InchSplash.png" base ios:[email protected]
666646
file ios:iphoneos9.2/fontmap as "fontmap"
667647
into "[[ToolsFolder]]/Runtime/iOS/Device-10_0" place
668-
executable ios:iphoneos10.0/standalone-mobile[[BaseEditionTagLower]].ios-engine as Standalone base ios:iphoneos8.2/standalone-mobile[[BaseEditionTagLower]].lcext
669-
executable ios:iphoneos10.0/revsecurity.ios-extension as RevSecurity base ios:iphoneos8.2/revsecurity.lcext
670-
executable ios:iphoneos10.0/revpdfprinter.ios-extension as RevPdfPrinter base ios:iphoneos8.2/revpdfprinter.lcext
671-
executable ios:iphoneos10.0/revzip.ios-extension as RevZip base ios:iphoneos8.2/revzip.lcext
672-
executable ios:iphoneos10.0/revxml.ios-extension as RevXml base ios:iphoneos8.2/revxml.lcext
673-
executable ios:iphoneos10.0/revdb.ios-extension as RevDb base ios:iphoneos8.2/revdb.lcext
674-
executable ios:iphoneos10.0/dbsqlite.ios-extension as DbSqlite base ios:iphoneos8.2/dbsqlite.lcext
675-
executable ios:iphoneos10.0/dbmysql.ios-extension as DbMysql base ios:iphoneos8.2/dbmysql.lcext
648+
executable ios:iphoneos10.0/standalone-mobile[[BaseEditionTagLower]].ios-engine as Standalone base ios:iphoneos9.2/standalone-mobile[[BaseEditionTagLower]].lcext
649+
executable ios:iphoneos10.0/revsecurity.ios-extension as RevSecurity base ios:iphoneos9.2/revsecurity.lcext
650+
executable ios:iphoneos10.0/revpdfprinter.ios-extension as RevPdfPrinter base ios:iphoneos9.2/revpdfprinter.lcext
651+
executable ios:iphoneos10.0/revzip.ios-extension as RevZip base ios:iphoneos9.2/revzip.lcext
652+
executable ios:iphoneos10.0/revxml.ios-extension as RevXml base ios:iphoneos9.2/revxml.lcext
653+
executable ios:iphoneos10.0/revdb.ios-extension as RevDb base ios:iphoneos9.2/revdb.lcext
654+
executable ios:iphoneos10.0/dbsqlite.ios-extension as DbSqlite base ios:iphoneos9.2/dbsqlite.lcext
655+
executable ios:iphoneos10.0/dbmysql.ios-extension as DbMysql base ios:iphoneos9.2/dbmysql.lcext
676656
file ios:iphoneos10.0/mobile-device-template.plist as "Settings.plist"
677657
file ios:iphoneos10.0/mobile-remote-notification-template.plist as "RemoteNotificationSettings.plist"
678658
file ios:iphoneos10.0/mobile-url-scheme-template.plist as "URLSchemeSettings.plist"

Makefile

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ EMMAKE ?= emmake
2525

2626
# Some magic to control which versions of iOS we try to build. N.b. you may
2727
# also need to modify the buildbot configuration
28-
IPHONEOS_VERSIONS ?= 8.2 9.2 10.0
28+
IPHONEOS_VERSIONS ?= 9.2 10.0
2929
IPHONESIMULATOR_VERSIONS ?= 6.1 7.1 8.2 9.2 10.0
3030

3131
IOS_SDKS ?= \
@@ -44,6 +44,14 @@ else
4444
BUILD_PROJECT := livecode
4545
endif
4646

47+
# Prettifying output for CI builds
48+
ifeq ($(TRAVIS),true)
49+
XCODEBUILD := set -o pipefail && $(XCODEBUILD)
50+
XCODEBUILD_FILTER := | xcpretty
51+
else
52+
XCODEBUILD_FILTER :=
53+
endif
54+
4755
include Makefile.common
4856

4957
################################################################
@@ -109,10 +117,12 @@ config-mac:
109117
./config.sh --platform mac
110118

111119
compile-mac:
112-
$(XCODEBUILD) -project "build-mac$(BUILD_SUBDIR)/$(BUILD_PROJECT).xcodeproj" -configuration $(BUILDTYPE) -target default
120+
$(XCODEBUILD) -project "build-mac$(BUILD_SUBDIR)/$(BUILD_PROJECT).xcodeproj" -configuration $(BUILDTYPE) -target default \
121+
$(XCODEBUILD_FILTER)
113122

114123
check-mac:
115-
$(XCODEBUILD) -project "build-mac$(BUILD_SUBDIR)/$(BUILD_PROJECT).xcodeproj" -configuration $(BUILDTYPE) -target check
124+
$(XCODEBUILD) -project "build-mac$(BUILD_SUBDIR)/$(BUILD_PROJECT).xcodeproj" -configuration $(BUILDTYPE) -target check \
125+
$(XCODEBUILD_FILTER)
116126
$(MAKE) check-common-mac
117127

118128

builder/builder_utilities.livecodescript

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
script "BuilderUtilities"
22

3-
constant kMergExtVersion = "2016-9-13"
4-
constant kTSNetVersion = "1.2.2"
3+
constant kMergExtVersion = "2016-9-19"
4+
constant kTSNetVersion = "1.2.3"
55

66
local sEngineDir
77
local sWorkDir
@@ -648,4 +648,4 @@ command builderExtUnpack pEdition
648648
-- Ensure that the TSNet bundle is downloaded and unpacked
649649
builderTSNetUnpack builderTSNetVersion(), tEdition
650650
end if
651-
end builderExtUnpack
651+
end builderExtUnpack

builder/package_compiler.livecodescript

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1326,32 +1326,24 @@ private function compilerProcessSlim @self, pInputFile, pTargetArchs
13261326
return tDerivedFile
13271327
end compilerProcessSlim
13281328

1329-
private function compilerProcessSign @self, pFile
1330-
local tSignParams
1331-
put abstractPinFile(pFile) into tSignParams["input"]
1332-
put compilerMakeTemporaryFile(self, "sign") into tSignParams["output"]
1333-
put self["options"]["sign.certificate"] into tSignParams["certificate"]
1334-
put self["options"]["sign.privatekey"] into tSignParams["privatekey"]
1335-
put self["options"]["sign.password"] into tSignParams["passphrase"]
1336-
put self["options"]["sign.timestamper"] into tSignParams["timestamper"]
1337-
put self["options"]["sign.url"] into tSignParams["url"]
1338-
1339-
set the itemDelimiter to slash
1340-
put self["options"]["sign.description"] & ":" && the last item of pFile into tSignParams["description"]
1341-
set the itemDelimiter to comma
1342-
1343-
compilerProgress self, "Signing '" & tSignParams["input"] & "'"
1344-
_internal sign windows tSignParams
1345-
if the result is not empty then
1346-
compilerBuildWarning self, "signing of '" & pFile & "' failed - " & the result
1329+
private function compilerProcessCodesign @self, pFile
1330+
local tFile
1331+
put abstractPinFile(pFile) into tFile
1332+
-- Find the signing identity and sign the app bundle
1333+
get builderFindSigningIdentity()
1334+
if it is empty then
1335+
compilerBuildWarning self, "Signing identity not found"
1336+
return empty
13471337
end if
13481338

1349-
if there is no file tSignParams["output"] then
1339+
get shell("/usr/bin/codesign --sign" && word 2 of it && "--verbose=2" && quote & tFile & quote)
1340+
if the result is not zero then
1341+
compilerBuildWarning self, "Signing of executable '" & pFile & "' failed -" && the result
13501342
return empty
13511343
end if
13521344

1353-
return tSignParams["output"]
1354-
end compilerProcessSign
1345+
return tFile
1346+
end compilerProcessCodesign
13551347

13561348
private function compilerMakeTemporaryFile @self, pTag
13571349
local tFolder

0 commit comments

Comments
 (0)