hedgewars/uConsole.pas
author Simon McVittie <smcv@debian.org>
Mon, 12 Sep 2022 10:40:53 -0400
branch1.0.0
changeset 15881 7b1d6dfa3173
parent 12621 d972b31f8881
permissions -rw-r--r--
Remove FindSDL2 find-module, use sdl2-config.cmake instead This requires SDL >= 2.0.4. Since <https://bugzilla.libsdl.org/show_bug.cgi?id=2464> was fixed in SDL 2.0.4, SDL behaves as a CMake "config-file package", even if it was not itself built using CMake: it installs a sdl2-config.cmake file to ${libdir}/cmake/SDL2, which tells CMake where to find SDL's headers and library, analogous to a pkg-config .pc file. As a result, we no longer need to copy/paste a "find-module package" to be able to find a system copy of SDL >= 2.0.4 with find_package(SDL2). Find-module packages are now discouraged by the CMake developers, in favour of having upstream projects behave as config-file packages. This results in a small API change: FindSDL2 used to set SDL2_INCLUDE_DIR and SDL2_LIBRARY, but the standard behaviour for config-file packages is to set <name>_INCLUDE_DIRS and <name>_LIBRARIES. Use the CONFIG keyword to make sure we search in config-file package mode, and will not find a FindSDL2.cmake in some other directory that implements the old interface. In addition to deleting redundant code, this avoids some assumptions in FindSDL2 about the layout of a SDL installation. The current libsdl2-dev package in Debian breaks those assumptions; this is considered a bug and will hopefully be fixed soon, but it illustrates how fragile these assumptions can be. We can be more robust against different installation layouts by relying on SDL's own CMake integration. When linking to a copy of CMake in a non-standard location, users can now set the SDL2_DIR or CMAKE_PREFIX_PATH environment variable to point to it; previously, these users would have used the SDL2DIR environment variable. This continues to be unnecessary if using matching system-wide installations of CMake and SDL2, for example both from Debian.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
     1
(*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 1035
diff changeset
     2
 * Hedgewars, a free turn based strategy game
11046
47a8c19ecb60 more copyright fixes
sheepluva
parents: 10490
diff changeset
     3
 * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
     4
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
     8
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    12
 * GNU General Public License for more details.
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    13
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    14
 * You should have received a copy of the GNU General Public License
57c2ef19f719 Relicense to GPL
unc0rr
parents: 176
diff changeset
    15
 * along with this program; if not, write to the Free Software
10108
c68cf030eded update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents: 10015
diff changeset
    16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    17
 *)
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    18
2630
079ef82eac75 revamped file access and debug display
koda
parents: 2599
diff changeset
    19
{$INCLUDE "options.inc"}
079ef82eac75 revamped file access and debug display
koda
parents: 2599
diff changeset
    20
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    21
unit uConsole;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    22
interface
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    23
785
ac538f1a629e Start console OpenGL reincarnation
unc0rr
parents: 783
diff changeset
    24
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    25
procedure WriteToConsole(s: shortstring);
8437
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    26
procedure WriteLnToConsole(s: shortstring);
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    27
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    28
var lastConsoleline : shortstring;
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    29
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    30
implementation
12621
d972b31f8881 fix some fpc hints
sheepluva
parents: 11046
diff changeset
    31
uses uUtils {$IFDEF ANDROID}, log in 'log.pas'{$ENDIF};
8437
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    32
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    33
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    34
procedure WriteToConsole(s: shortstring);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    35
begin
3818
e668970413e6 add a noconsole symbol, update the project file for appstore distribution
koda
parents: 3777
diff changeset
    36
{$IFNDEF NOCONSOLE}
8437
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    37
    AddFileLog('[Con] ' + s);
5661
45618bdce725 Fixed AddFileLog, there's now a log created in /sdcard/Android/data/org.hedgewars.mobile/cache/Data/
Xeli
parents: 5460
diff changeset
    38
{$IFDEF ANDROID}
8437
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    39
    //TODO integrate this function in the uMobile record
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6528
diff changeset
    40
    Log.__android_log_write(Log.Android_LOG_DEBUG, 'HW_Engine', ShortStringAsPChar('[Con]' + s));
5286
22c1f4833a86 First commit..
Xeli
parents: 5132
diff changeset
    41
{$ELSE}
8437
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    42
    Write(stderr, s);
3818
e668970413e6 add a noconsole symbol, update the project file for appstore distribution
koda
parents: 3777
diff changeset
    43
{$ENDIF}
5286
22c1f4833a86 First commit..
Xeli
parents: 5132
diff changeset
    44
{$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    45
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    46
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    47
procedure WriteLnToConsole(s: shortstring);
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    48
begin
3825
fd6c20cd90e3 typos, reduced sound size and last minute fixes
koda
parents: 3818
diff changeset
    49
{$IFNDEF NOCONSOLE}
8437
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    50
    WriteToConsole(s);
5286
22c1f4833a86 First commit..
Xeli
parents: 5132
diff changeset
    51
{$IFNDEF ANDROID}
8437
93b647d6a00f uConsole on a diet
koda
parents: 7151
diff changeset
    52
    WriteLn(stderr, '');
3818
e668970413e6 add a noconsole symbol, update the project file for appstore distribution
koda
parents: 3777
diff changeset
    53
{$ENDIF}
5286
22c1f4833a86 First commit..
Xeli
parents: 5132
diff changeset
    54
{$ENDIF}
9958
5a222923c8f8 - Don't define NOCONSOLE
unc0rr
parents: 9080
diff changeset
    55
    lastConsoleline:= s;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    56
end;
10490
b30b8d39d662 Fix some stuff from coverity
unc0rr
parents: 10108
diff changeset
    57
{$IFDEF ANDROID}
6444
eddc1e9bcd81 - Help parser more
unc0rr
parents: 6033
diff changeset
    58
function ShortStringAsPChar(s: shortstring) : PChar;
6027
302408e45052 code working on ios now
koda
parents: 5661
diff changeset
    59
begin
6580
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6528
diff changeset
    60
    if Length(s) = High(s) then
6155187bf599 A partial reformatting of the pascal code to have consistent syntax. Things that are still inconsistent.
lovelacer
parents: 6528
diff changeset
    61
        Dec(s[0]);
6027
302408e45052 code working on ios now
koda
parents: 5661
diff changeset
    62
    s[Ord(Length(s))+1] := #0;
10490
b30b8d39d662 Fix some stuff from coverity
unc0rr
parents: 10108
diff changeset
    63
    // returning pointer to stack, rly?
6990
40e5af28d026 change every return value into a more pascal-ish form, using the name of the fucntion (helps the parser and macpas compaitilibity)
koda
parents: 6982
diff changeset
    64
    ShortStringAsPChar:= @s[1];
6027
302408e45052 code working on ios now
koda
parents: 5661
diff changeset
    65
end;
10490
b30b8d39d662 Fix some stuff from coverity
unc0rr
parents: 10108
diff changeset
    66
{$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    67
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 2
diff changeset
    68
end.