@@ -94,6 +94,43 @@ def get_component_files(xml_file):
94
94
return (set ([c_tag .get ("implementation" ) for c_tag in ET .parse (xml_file ).getroot ().findall ("component" )]))
95
95
96
96
def gpr_compile (config , gneiss_root , build_dir , root_dir , paths , platform , logger , verbose ):
97
+ if platform == "nRF52832" :
98
+ gpr_compile_nrf52832 (config , gneiss_root , build_dir , paths , platform , logger , verbose )
99
+ else :
100
+ gpr_compile_linux (config , gneiss_root , build_dir , root_dir , paths , platform , logger , verbose )
101
+
102
+ def gpr_compile_nrf52832 (config , gneiss_root , build_dir , paths , platform , logger , verbose ):
103
+ logger .info ("Creating project..." )
104
+ project_dir = os .path .join (build_dir , "nRF52832" )
105
+ try :
106
+ os .mkdir (build_dir )
107
+ os .mkdir (project_dir )
108
+ except FileExistsError :
109
+ pass
110
+ args = ["-p" ,
111
+ "-P" , "core" ,
112
+ "-XGNEISS_PLATFORM=" + platform ,
113
+ "-XGCC_VERSION=" + get_gcc_version (),
114
+ "-XGNEISS_ROOT=" + gneiss_root ,
115
+ "-XCEMENT_OBJECT_DIR=" + os .path .join (project_dir , "obj/" ),
116
+ "-XCEMENT_LIB_OBJECT_DIR=" + os .path .join (project_dir , "libobj/" ),
117
+ "-XCEMENT_LIBRARY_DIR=" + os .path .join (project_dir , "lib/" ),
118
+ "-XCEMENT_COMPONENT_DIR=" + os .path .join (project_dir , "libcomponents/" ),
119
+ "--db" , os .path .join (gneiss_root , "gprconfig_db" ),
120
+ "-aP" , project_dir ]
121
+ for p in paths :
122
+ args .extend (["-aP" , p ])
123
+ with open (os .path .join (project_dir , "core.gpr" ), "w" ) as core_gpr :
124
+ core_gpr .write ("\n " .join ([f"with \" { c } \" ;" for c in get_component_files (config )]))
125
+ core_gpr .write ("\n \n " )
126
+ with open (os .path .join (gneiss_root , f"src/core/{ platform } /core.gpr" ), "r" ) as core_template :
127
+ core_gpr .write (core_template .read ())
128
+ for step in ["prepare" , "compile" ]:
129
+ args += ["-XCEMENT_BUILD_STEP=" + step ]
130
+ logger .debug ("gprbuild " + " " .join (args ))
131
+ gprbuild (args )
132
+
133
+ def gpr_compile_linux (config , gneiss_root , build_dir , root_dir , paths , platform , logger , verbose ):
97
134
logger .info ("Compiling..." )
98
135
components = get_component_files (config )
99
136
logger .info ("Preparing init..." )
0 commit comments