mirror of
https://github.com/AntKrotov/oberon-07-compiler.git
synced 2026-10-05 09:45:47 +00:00
Предопределенные идентификаторы условной компиляции
This commit is contained in:
1 parent
39c00efc26
commit
d89948c9b7
4 files changed
+55
-4
No files matched your search
Binary file not shown.
+29
-4
@@ -13,6 +13,14 @@
|
||||
где ident:
|
||||
- одно из возможных значений параметра <target> в командной строке
|
||||
- пользовательский идентификатор, переданный с ключом -def при компиляции
|
||||
- один из возможных предопределенных идентификаторов:
|
||||
|
||||
WINDOWS - приложение Windows
|
||||
LINUX - приложение Linux
|
||||
KOLIBRIOS - приложение KolibriOS
|
||||
CPU_X86 - приложение для процессора x86 (32-бит)
|
||||
CPU_X8664 - приложение для процессора x86_64
|
||||
|
||||
|
||||
примеры:
|
||||
|
||||
@@ -29,8 +37,25 @@
|
||||
$END
|
||||
|
||||
|
||||
$IF (CPUX86_64) (* -def CPUX86_64 *)
|
||||
bit_depth := 64;
|
||||
$ELSE
|
||||
bit_depth := 32;
|
||||
$IF (debug) (* -def debug *)
|
||||
print("debug");
|
||||
$END
|
||||
|
||||
|
||||
$IF (WINDOWS)
|
||||
$IF (CPU_X86)
|
||||
(*windows 32*)
|
||||
|
||||
$ELSIF (CPU_X8664)
|
||||
(*windows 64*)
|
||||
|
||||
$END
|
||||
$ELSIF (LINUX)
|
||||
$IF (CPU_X86)
|
||||
(*linux 32*)
|
||||
|
||||
$ELSIF (CPU_X8664)
|
||||
(*linux 64*)
|
||||
|
||||
$END
|
||||
$END
|
||||
@@ -11,6 +11,15 @@ IMPORT ST := STATEMENTS, PARS, UTILS, PATHS, PROG, C := CONSOLE,
|
||||
ERRORS, STRINGS, WRITER, MSP430, THUMB, TARGETS, SCAN;
|
||||
|
||||
|
||||
CONST
|
||||
|
||||
DEF_WINDOWS = "WINDOWS";
|
||||
DEF_LINUX = "LINUX";
|
||||
DEF_KOLIBRIOS = "KOLIBRIOS";
|
||||
DEF_CPU_X86 = "CPU_X86";
|
||||
DEF_CPU_X8664 = "CPU_X8664";
|
||||
|
||||
|
||||
PROCEDURE keys (VAR options: PROG.OPTIONS; VAR out: PARS.PATH);
|
||||
VAR
|
||||
param: PARS.PATH;
|
||||
@@ -287,6 +296,23 @@ BEGIN
|
||||
|
||||
PARS.init(options);
|
||||
|
||||
CASE TARGETS.OS OF
|
||||
|TARGETS.osNONE:
|
||||
|TARGETS.osWIN32,
|
||||
TARGETS.osWIN64: SCAN.NewDef(DEF_WINDOWS)
|
||||
|TARGETS.osLINUX32,
|
||||
TARGETS.osLINUX64: SCAN.NewDef(DEF_LINUX)
|
||||
|TARGETS.osKOS: SCAN.NewDef(DEF_KOLIBRIOS)
|
||||
END;
|
||||
|
||||
CASE TARGETS.CPU OF
|
||||
|TARGETS.cpuX86: SCAN.NewDef(DEF_CPU_X86)
|
||||
|TARGETS.cpuAMD64: SCAN.NewDef(DEF_CPU_X8664)
|
||||
|TARGETS.cpuMSP430:
|
||||
|TARGETS.cpuTHUMB:
|
||||
|TARGETS.cpuRVM32I:
|
||||
END;
|
||||
|
||||
ST.compile(path, lib_path, modname, outname, target, options);
|
||||
|
||||
time := UTILS.GetTickCount() - UTILS.time;
|
||||
|
||||
Reference in new issue
Block a user