@@ -75,9 +75,36 @@ int f_install_package_source(const char* spm_path, int as_dep, char* repo) {
75
75
QUEUE_COUNT ++ ;
76
76
dbg (1 , "Added %s to the queue" , pkg .name );
77
77
78
+ // Set the package info section as environment vadiables for make script
79
+ setenv ("NAME" , pkg .name , 1 );
80
+ setenv ("VERSION" , pkg .version , 1 );
78
81
79
- // Get global environment variables
82
+ if (pkg .url != NULL )
83
+ {
84
+ parse_env (& (pkg .url ));
85
+ dbg (1 , "URL: %s" , pkg .url );
86
+ setenv ("URL" , pkg .url , 1 );
87
+ }
88
+
89
+ if (pkg .type != NULL )
90
+ {
91
+ setenv ("TYPE" , pkg .type , 1 );
92
+ }
80
93
94
+ if (pkg .license != NULL )
95
+ {
96
+ setenv ("LICENSE" , pkg .license , 1 );
97
+ }
98
+
99
+ if (pkg .sha256 != NULL )
100
+ {
101
+ setenv ("SHA256" , pkg .sha256 , 1 );
102
+ }
103
+
104
+ // Set environment variables for building
105
+ setenv ("BUILD_ROOT" , build_dir , 1 );
106
+
107
+ // Get global environment variables
81
108
if (pkg .environment != NULL )
82
109
{
83
110
dbg (1 , "Getting environment variables..." );
@@ -88,7 +115,6 @@ int f_install_package_source(const char* spm_path, int as_dep, char* repo) {
88
115
}
89
116
90
117
// Set global environment variables
91
-
92
118
if (pkg .exports != NULL && pkg .exportsCount > 0 && strlen (pkg .exports [0 ]) > 0 )
93
119
{
94
120
dbg (1 , "Setting environment variables..." );
@@ -101,11 +127,13 @@ int f_install_package_source(const char* spm_path, int as_dep, char* repo) {
101
127
for (int i = 0 ; i < pkg .exportsCount ; i ++ )
102
128
{
103
129
fprintf (env_file , "%s\n" , pkg .exports [i ]);
130
+ char * line = strdup (pkg .exports [i ]);
131
+ parse_env (& line );
104
132
105
- if ((pkg . exports [ i ][ 0 ] != '#' || ( pkg . exports [ i ][ 0 ] != '/' && pkg . exports [ i ][ 1 ] != '/' )) && strstr (pkg . exports [ i ] , "=" ) != 0 )
133
+ if ((( line [ 0 ] != '#' ) && (( line [ 0 ] != '/' ) && ( line [ 1 ] != '/' ))) && ( strstr (line , "=" ) != 0 ) )
106
134
{
107
- char * key = strtok (pkg . exports [ i ] , "=" );
108
- char * value = strchr (pkg . exports [ i ] , '\0' ) + 1 ;
135
+ char * key = strtok (line , "=" );
136
+ char * value = strchr (line , '\0' ) + 1 ;
109
137
110
138
if (key == NULL || value == NULL )
111
139
{
@@ -117,41 +145,12 @@ int f_install_package_source(const char* spm_path, int as_dep, char* repo) {
117
145
// Set environment variables based on the key-value pairs in the config file
118
146
setenv (key , value , 1 );
119
147
}
148
+ free (line );
120
149
}
121
150
122
151
fclose (env_file );
123
152
}
124
153
125
- // Set the package info section as environment vadiables for make script
126
-
127
- setenv ("NAME" , pkg .name , 1 );
128
- setenv ("VERSION" , pkg .version , 1 );
129
-
130
- if (pkg .url != NULL )
131
- {
132
- parse_env (& (pkg .url ));
133
- dbg (1 , "URL: %s" , pkg .url );
134
- setenv ("URL" , pkg .url , 1 );
135
- }
136
-
137
- if (pkg .type != NULL )
138
- {
139
- setenv ("TYPE" , pkg .type , 1 );
140
- }
141
-
142
- if (pkg .license != NULL )
143
- {
144
- setenv ("LICENSE" , pkg .license , 1 );
145
- }
146
-
147
- if (pkg .sha256 != NULL )
148
- {
149
- setenv ("SHA256" , pkg .sha256 , 1 );
150
- }
151
-
152
- // Set environment variables for building
153
- setenv ("BUILD_ROOT" , build_dir , 1 );
154
-
155
154
156
155
// Check if a package is a collection
157
156
if (strcmp (pkg .type , "con" ) != 0 )
0 commit comments