@@ -161,12 +161,38 @@ async function setupHamlib() {
161161 logger . startSpinner ( 'Building Hamlib from source...' ) ;
162162
163163 try {
164- const buildCmd = `node ${ path . join ( __dirname , 'build-hamlib.js' ) } ` ;
164+ const cwd = process . cwd ( ) ;
165+ const hamlibPrefix = path . join ( cwd , 'hamlib-build' ) ;
166+
167+ const buildCmd = `node ${ path . join ( __dirname , 'build-hamlib.js' ) } --prefix=${ hamlibPrefix } ` ;
165168 const buildArgs = args . minimal ? ' --minimal' : '' ;
166169
167170 exec ( buildCmd + buildArgs ) ;
168171
169172 logger . succeedSpinner ( 'Hamlib built successfully' ) ;
173+
174+ // Set environment variables for subsequent steps
175+ process . env . HAMLIB_PREFIX = hamlibPrefix ;
176+
177+ if ( process . platform === 'linux' ) {
178+ const libPath = path . join ( hamlibPrefix , 'lib' ) ;
179+ process . env . LD_LIBRARY_PATH = process . env . LD_LIBRARY_PATH
180+ ? `${ libPath } :${ process . env . LD_LIBRARY_PATH } `
181+ : libPath ;
182+ process . env . PKG_CONFIG_PATH = process . env . PKG_CONFIG_PATH
183+ ? `${ libPath } /pkgconfig:${ process . env . PKG_CONFIG_PATH } `
184+ : `${ libPath } /pkgconfig` ;
185+ } else if ( process . platform === 'darwin' ) {
186+ const libPath = path . join ( hamlibPrefix , 'lib' ) ;
187+ process . env . DYLD_LIBRARY_PATH = process . env . DYLD_LIBRARY_PATH
188+ ? `${ libPath } :${ process . env . DYLD_LIBRARY_PATH } `
189+ : libPath ;
190+ process . env . PKG_CONFIG_PATH = process . env . PKG_CONFIG_PATH
191+ ? `${ libPath } /pkgconfig:${ process . env . PKG_CONFIG_PATH } `
192+ : `${ libPath } /pkgconfig` ;
193+ }
194+
195+ logger . debug ( `Set HAMLIB_PREFIX=${ hamlibPrefix } ` ) ;
170196 } catch ( e ) {
171197 logger . failSpinner ( 'Hamlib build failed' ) ;
172198 throw e ;
0 commit comments