Skip to content

Commit 739241b

Browse files
author
Hugh Sanderson
committed
Remove 'register' keyword. Tweak logic for finding android NDK.
1 parent 0f2e870 commit 739241b

File tree

2 files changed

+62
-7
lines changed

2 files changed

+62
-7
lines changed

src/hx/AndroidCompat.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ extern "C" {
1515

1616
char * stpcpy(char *dest, const char *src)
1717
{
18-
register char *d = dest;
19-
register const char *s = src;
18+
char *d = dest;
19+
const char *s = src;
2020
do
2121
*d++ = *s;
2222
while (*s++ != '\0');

tools/hxcpp/Setup.hx

Lines changed: 60 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,72 @@ class Setup
6464
{
6565
Log.v("checks default ndk-bundle in android sdk");
6666
var ndkBundle = defines.get("ANDROID_SDK")+"/ndk-bundle";
67+
var newStyle = false;
68+
if (!FileSystem.exists(ndkBundle) )
69+
{
70+
Log.v("ndk-bundle directory not found in sdk,try ndk");
71+
var altDir = defines.get("ANDROID_SDK")+"/ndk/";
72+
if (FileSystem.exists(altDir) )
73+
{
74+
var alt = findBestNdk(altDir);
75+
if (alt!=null)
76+
{
77+
Log.v('using $alt ndk dir');
78+
ndkBundle = alt;
79+
}
80+
}
81+
}
6782
ndkBundle = ndkBundle.split("\\").join("/");
68-
var version = getNdkVersion(ndkBundle);
83+
var version = getNdkVersion(ndkBundle, newStyle);
6984
if (version>bestVersion && (inBaseVersion==0 || inBaseVersion==Std.int(version)) )
7085
{
71-
Log.v("Using default ndk-bundle in android sdk");
86+
Log.v("Using default ndk-bundle in android sdk:" + ndkBundle);
7287
result = ndkBundle;
7388
}
7489
}
7590

7691
return result;
7792
}
7893

79-
static public function getNdkVersion(inDirName:String):Float
94+
static function findBestNdk(root:String) : String
8095
{
96+
var versionMatch = ~/(\d+)\.(\d+\.\d+)/;
97+
var version:String = null;
98+
var best = 0.0;
99+
try
100+
{
101+
for (file in FileSystem.readDirectory(root))
102+
{
103+
if (versionMatch.match(file))
104+
{
105+
var maj = Std.parseInt(versionMatch.matched(1));
106+
var minor = Std.parseFloat(versionMatch.matched(2));
107+
var combined = maj*1000 + minor;
108+
Log.v(" found ndk:" + file);
109+
if (combined>best)
110+
{
111+
best = combined;
112+
version = file;
113+
}
114+
}
115+
}
116+
}
117+
catch(e:Dynamic)
118+
{
119+
}
120+
121+
if (version!=null)
122+
return root + "/" + version;
123+
124+
return null;
125+
}
126+
127+
static var gotNdkVersion = 0.0;
128+
static public function getNdkVersion(inDirName:String, newStyle=false):Float
129+
{
130+
if (gotNdkVersion!=0)
131+
return gotNdkVersion;
132+
81133
Log.v("Try to get version from source.properties");
82134
var src = toPath(inDirName+"/source.properties");
83135
if (sys.FileSystem.exists(src))
@@ -97,8 +149,9 @@ class Setup
97149
var result:Float = 1.0 * Std.parseInt(split2[0]) + 0.001 * Std.parseInt(split2[1]);
98150
if (result>=8)
99151
{
100-
Log.v('Deduced NDK version '+result+' from "$inDirName"/source.properties');
152+
Log.v('Deduced NDK version '+result+' from "$inDirName/source.properties"');
101153
fin.close();
154+
gotNdkVersion = result;
102155
return result;
103156
}
104157
}
@@ -121,11 +174,13 @@ class Setup
121174
var minor = extract_version.matched(3);
122175
if (minor!=null && minor.length>0)
123176
result += 0.001 * (minor.toLowerCase().charCodeAt(0)-'a'.code);
177+
gotNdkVersion = result;
124178
return result;
125179
}
126180

127181
Log.v('Could not deduce NDK version from "$inDirName" - assuming 8');
128-
return 8;
182+
gotNdkVersion = 8;
183+
return gotNdkVersion;
129184
}
130185

131186
public static function initHXCPPConfig(ioDefines:Hash<String>)

0 commit comments

Comments
 (0)