-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathzoneinfo_internal.gpr
More file actions
72 lines (59 loc) · 2.89 KB
/
zoneinfo_internal.gpr
File metadata and controls
72 lines (59 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
-- ===========================================================================
-- zoneinfo_internal.gpr - Internal Build (No Interface Restrictions)
-- ===========================================================================
-- Purpose:
-- This project file is used for internal development and testing.
-- Unlike zoneinfo.gpr (which enforces Library_Interface), this exposes
-- ALL packages including Application and Infrastructure layers.
--
-- Usage:
-- - Unit tests that need to test internal Infrastructure packages
-- - Integration tests that need direct access to Repository implementations
-- - Internal development builds
--
-- External clients should NEVER depend on this project - use zoneinfo.gpr instead.
-- ===========================================================================
with "config/zoneinfo_internal_config.gpr";
library project Zoneinfo_Internal is
for Library_Name use "zoneinfo_internal";
for Library_Kind use "static";
for Library_Dir use "lib";
-- Profile selection (standard profile for tests)
type Profile_Type is
("standard", -- Desktop/server (1+ GB RAM)
"embedded", -- Ravenscar embedded (512KB+ RAM)
"concurrent", -- Multi-threaded (1+ GB RAM)
"baremetal", -- Zero footprint (128KB+ RAM)
"stm32h7s78", -- STM32H7S78-DK (620KB + 32MB PSRAM)
"stm32mp135_linux"); -- STM32MP135F-DK Linux (512 MB)
Profile : Profile_Type := external ("ZONEINFO_PROFILE", "standard");
-- Operating System Detection
type OS_Type is ("unix", "windows");
OS : OS_Type := external ("ZONEINFO_OS", "unix");
-- Include all source directories (same as zoneinfo.gpr)
case Profile is
when "standard" =>
for Source_Dirs use ("src/**", "config/profiles/standard");
when "embedded" =>
for Source_Dirs use ("src/**", "config/profiles/embedded");
when "concurrent" =>
for Source_Dirs use ("src/**", "config/profiles/concurrent");
when "baremetal" =>
for Source_Dirs use ("src/**", "config/profiles/baremetal");
when "stm32h7s78" =>
for Source_Dirs use ("src/**", "config/profiles/stm32h7s78");
when "stm32mp135_linux" =>
for Source_Dirs use ("src/**", "config/profiles/stm32mp135_linux");
end case;
-- Platform-Specific Source Exclusions (same as zoneinfo.gpr)
-- Note: Currently no exclusions needed - zoneinfo relies on TZif for platform I/O.
-- When Windows-specific files are added, uncomment and update.
for Object_Dir use "obj/internal";
for Create_Missing_Dirs use "True";
-- NO Library_Interface restriction - all packages are accessible
-- This allows unit tests to import and test Infrastructure packages directly
for Languages use ("Ada");
package Compiler is
for Default_Switches ("Ada") use Zoneinfo_Internal_Config.Ada_Compiler_Switches;
end Compiler;
end Zoneinfo_Internal;