$TITLE 'Test expert level C API to read and write GDX in C++' (CPPEX1,SEQ=5) $ontext Contributor: Lutz Westermann, October 2012 $offtext $set srcRoot %gams.sysdir%apifiles%system.dirsep%C++%system.dirsep% $set srcRootC %gams.sysdir%apifiles%system.dirsep%C%system.dirsep% $set exaDir %srcRoot%xp_example1%system.dirsep% $ifThen %system.filesys% == UNIX $ if not set COMPILER $set COMPILER GNU $else $ if not set COMPILER $set COMPILER INTEL $endIf $ifThen %COMPILER% == GNU $ set CPPCOMP g++ $ ifThen %system.filesys% == UNIX $ set OUT -oxp_example1 $ set FLAGS -ldl -lpthread $ else $ set OUT -oxp_example1.exe $ set FLAGS $ endIf $elseIf %COMPILER% == INTEL $ set CPPCOMP cl $ set FLAGS $ set OUT -Fexp_example1.exe $else $ abort Unknown compiler: %COMPILER% $endIf $call rm -rf demanddata.gdx $call.checkErrorLevel cp "%srcRootC%api%system.dirsep%gdxcc.c" . $call.checkErrorLevel cp "%exaDir%xp_example1.cpp" . $call %CPPCOMP% xp_example1.cpp gdxcc.c -I"%srcRoot%api" -I"%srcRootC%api" %OUT% %FLAGS% $if errorlevel 1 $abort 'Problem compiling xp_example1.cpp' $if %system.buildcode% == DEG $call install_name_tool -change $GCCLIBDIR/libstdc++.6.dylib "%gams.sysdir%/libstdc++.6.dylib" -change $GCCLIBDIR/libgcc_s.1.dylib "%gams.sysdir%/libgcc_s.1.dylib" xp_example1 $if %system.buildcode% == DEG $if errorlevel 1 $abort 'Problem adjusting library path' $call .%system.dirsep%xp_example1 "%gams.sysdir%." $if errorlevel 1 $abort 'Problem executing xp_example1 writing GDX file' $call gdxdiff demanddata.gdx demandwant.gdx $if errorlevel 1 $abort 'Demanddata not as expected' $call .%system.dirsep%xp_example1 "%gams.sysdir%." trnsport.gdx $if errorlevel 1 $abort 'Problem executing xp_example1 reading GDX file'