1
0
Fork 0

Merge pull request #27 from kiwifb/fsl6_moresetup

Fsl6 moresetup
This commit is contained in:
Horea Christian 2019-11-09 00:43:55 +01:00 committed by GitHub
commit 79ca73c4ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 612 additions and 15 deletions

View File

@ -1,3 +1,22 @@
08 Nov 2019; François Bissey <frp.bissey@gmail.com> fsl-6.0.2.ebuild:
sci-biology/fsl: final touches. Skip mist-clean.
07 Nov 2019; François Bissey <frp.bissey@gmail.com>
+files/fsl-6.0.2-fsldir_redux.patch, fsl-6.0.2.ebuild:
sci-biology/fsl: Work on fsldir elimination
07 Nov 2019; François Bissey <frp.bissey@gmail.com>
+files/fsl-6.0.2-no_xmlpp.patch, +files/fsl-6.0.2-qstring_compat.patch,
fsl-6.0.2.ebuild:
sci-biology/fsl: patch porting to deal with cifti
07 Nov 2019; François Bissey <frp.bissey@gmail.com> fsl-6.0.2.ebuild:
sci-biology/fsl: tcl/tk is needed at build time
07 Nov 2019; François Bissey <frp.bissey@gmail.com>
files/fsl-6.0.2-setup.patch:
sci-biology/fsl: do not build tcl/tk/libpng
07 Nov 2019; François Bissey <frp.bissey@gmail.com>
+files/fsl-6.0.2-setup.patch, fsl-6.0.2.ebuild:
sci-biology/fsl: Initial fix to fsl 6.0.2

View File

@ -0,0 +1,467 @@
diff --git a/src/fast4/fast_two.cc b/src/fast4/fast_two.cc
index 592b5df..b525444 100644
--- a/src/fast4/fast_two.cc
+++ b/src/fast4/fast_two.cc
@@ -166,7 +166,7 @@ int prior_registration(string inname, string main_prior_vol, NEWIMAGE::volume<fl
string csfPriorName, grayPriorName, whitePriorName;
if(alternatePriors.unset())
{
- string priorRootName=string(getenv("FSLDIR")) + "/data/standard/tissuepriors/avg152T1_";
+ string priorRootName="@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/data/standard/tissuepriors/avg152T1_";
csfPriorName = priorRootName+"csf";
grayPriorName = priorRootName+"gray";
whitePriorName = priorRootName+"white";
@@ -215,15 +215,15 @@ string csfPriorName, grayPriorName, whitePriorName;
if(bapused>0)
{
char reg[1024];
- sprintf(reg, "%s/bin/flirt -ref %s -in %s -out %s -applyxfm -init %s", getenv("FSLDIR"), inname.c_str(), csfPriorName.c_str(), (main_prior_vol+"_csf_stdspace").c_str(), bapriori.value().c_str());
+ sprintf(reg, "flirt -ref %s -in %s -out %s -applyxfm -init %s", inname.c_str(), csfPriorName.c_str(), (main_prior_vol+"_csf_stdspace").c_str(), bapriori.value().c_str());
if(verbose.value())
cout<<reg<<endl;
system(reg);
- sprintf(reg, "%s/bin/flirt -ref %s -in %s -out %s -applyxfm -init %s", getenv("FSLDIR"), inname.c_str(), grayPriorName.c_str(), (main_prior_vol+"_gm_stdspace").c_str(), bapriori.value().c_str());
+ sprintf(reg, "flirt -ref %s -in %s -out %s -applyxfm -init %s", inname.c_str(), grayPriorName.c_str(), (main_prior_vol+"_gm_stdspace").c_str(), bapriori.value().c_str());
if(verbose.value())
cout<<reg<<endl;
system(reg);
- sprintf(reg, "%s/bin/flirt -ref %s -in %s -out %s -applyxfm -init %s", getenv("FSLDIR"), inname.c_str(), whitePriorName.c_str(), (main_prior_vol+"_wm_stdspace").c_str(), bapriori.value().c_str());
+ sprintf(reg, "flirt -ref %s -in %s -out %s -applyxfm -init %s", inname.c_str(), whitePriorName.c_str(), (main_prior_vol+"_wm_stdspace").c_str(), bapriori.value().c_str());
if(verbose.value())
cout << reg << endl;
system(reg);
diff --git a/src/feat5/feat_model.cc b/src/feat5/feat_model.cc
index 399a13e..e15e43c 100644
--- a/src/feat5/feat_model.cc
+++ b/src/feat5/feat_model.cc
@@ -744,7 +744,7 @@ int main(int argc, char **argv)
vector<int> G;
vector<string> titles;
float tr, mult, trmult, nltffwhm=0, maxconvwin=0;
- char fl[10000], *FSLDIR;
+ char fl[10000];
string fn, filename;
FONT_DATA *font_data = new FONT_DATA[1];
@@ -763,8 +763,6 @@ int main(int argc, char **argv)
if (argc==3)
motionparams=remmean(read_ascii_matrix(argv[2]));
- FSLDIR=getenv("FSLDIR");
-
fn = string(argv[1])+".fsf";
level = atoi(find_line(fn, "fmri(level)", fl));
@@ -1510,7 +1508,7 @@ int main(int argc, char **argv)
writeCovarianceImage(string(argv[1])+"_cov.ppm", contrasts, F, nftests, realDesign, level, evs.eigenvals, font_data, contrasts.RE);
writeImagePreview(string(argv[1])+".ppm", contrasts, F, nftests, realDesign, level, evs, font_data, titles, tr, nltffwhm, nTimepoints, G);
- filename=string(getenv("FSLDIR"))+"/bin/wpng -q -overwrite "+string(argv[1])+".ppm ";
+ filename="wpng -q -overwrite "+string(argv[1])+".ppm ";
system(filename.c_str());
return(0);
@@ -2161,6 +2159,6 @@ char the_string[10000];
fclose(outputfile);
- filename=string(getenv("FSLDIR")) + "/bin/wpng -q -overwrite " + filename;
+ filename="wpng -q -overwrite " + filename;
system(filename.c_str());
}
diff --git a/src/feat5/tsplot.cc b/src/feat5/tsplot.cc
index ae191fd..3a02b55 100644
--- a/src/feat5/tsplot.cc
+++ b/src/feat5/tsplot.cc
@@ -293,7 +293,7 @@ int main(int argc, char **argv)
ofstream outputFile;
int numEVs, npts, numContrasts=1, nftests=0, GRPHSIZE(600), PSSIZE(600);
vector<double> normalisedContrasts, model, triggers;
- string fmriFileName, fslPath, featdir, vType, indexText;
+ string fmriFileName, featdir, vType, indexText;
ColumnVector NewimageVoxCoord(4),NiftiVoxCoord(4);
bool outputText(true), useCoordinate(false), prewhiten(false), useTriggers(false), customMask(false), modelFree(false), isHigherLevel(false), outputDataOnly(false);
bool zWeightClusters(true);
@@ -307,7 +307,6 @@ volume<float> immask;
if (argc<2) usage("");
featdir=string(argv[1]);
fmriFileName=featdir+"/filtered_func_data";
- fslPath=string(getenv("FSLDIR"));
string outputName(featdir);
@@ -753,7 +752,7 @@ volume4D<float> acs;
cerr << "Can't open output report file " << outputName << endl;
exit(1);
}
- outputFile << "<HTML>\n<TITLE>"<< statType << num2str(i) <<"</TITLE>\n<BODY BACKGROUND=\"file:"<< fslPath <<"/doc/images/fsl-bg.jpg\">\n<hr><CENTER>\n<H1>FEAT Time Series Report - "<< statType << num2str(i) <<"</H1>\n</CENTER>\n<hr><b>Full plots</b><p>\n"<< graphText;
+ outputFile << "<HTML>\n<TITLE>"<< statType << num2str(i) <<"</TITLE>\n<BODY BACKGROUND=\"file:"<< "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/images/fsl-bg.jpg\">\n<hr><CENTER>\n<H1>FEAT Time Series Report - "<< statType << num2str(i) <<"</H1>\n</CENTER>\n<hr><b>Full plots</b><p>\n"<< graphText;
if (useTriggers) outputFile << "\n<hr><b>Peristimulus plots</b><p>\n"<< peristimulusText <<"\n<HR></BODY></HTML>\n\n";
else outputFile << "\n</BODY></HTML>\n\n";
outputFile.close();
@@ -768,7 +767,7 @@ volume4D<float> acs;
cerr << "Can't open output report file " << outputName << endl;
exit(1);
}
- outputFile << "<HTML>\n<TITLE>FEAT Time Series Report</TITLE>\n<BODY BACKGROUND=\"file:" << fslPath << "/doc/images/fsl-bg.jpg\">\n<hr><CENTER>\n<H1>FEAT Time Series Report</H1>\n</CENTER>\n<hr>" << indexText << "<HR></BODY></HTML>" << endl << endl;
+ outputFile << "<HTML>\n<TITLE>FEAT Time Series Report</TITLE>\n<BODY BACKGROUND=\"file:" << "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/images/fsl-bg.jpg\">\n<hr><CENTER>\n<H1>FEAT Time Series Report</H1>\n</CENTER>\n<hr>" << indexText << "<HR></BODY></HTML>" << endl << endl;
outputFile.close();
/* now output same thing without start and end, for inclusion in feat report */
diff --git a/src/first/first_utils.cc b/src/first/first_utils.cc
index 68be44b..85960f4 100644
--- a/src/first/first_utils.cc
+++ b/src/first/first_utils.cc
@@ -1954,8 +1954,8 @@ void do_work_bvars(){
if (!surfaceVAout.value()) {
// do not output on the surface, instead do the new default of outputting a volume with the scalar normal dot product values (for use with randomise)
volume<float> refim;
- if (useReconMNI.value()) { read_volume(refim,string(getenv("FSLDIR")) + "/data/standard/MNI152_T1_1mm"); }
- else { read_volume(refim,string(getenv("FSLDIR")) + "/data/standard/MNI152_T1_1mm"); }
+ if (useReconMNI.value()) { read_volume(refim,"@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/data/standard/MNI152_T1_1mm"); }
+ else { read_volume(refim,"@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/data/standard/MNI152_T1_1mm"); }
volume<float> maskvol(refim);
maskvol=0.0f;
volume4D<float> volnormals;
diff --git a/src/fnirt/fnirtfns.cpp b/src/fnirt/fnirtfns.cpp
index 24e26fd..77899e7 100644
--- a/src/fnirt/fnirtfns.cpp
+++ b/src/fnirt/fnirtfns.cpp
@@ -1203,8 +1203,7 @@ string existing_ref_fname(const string& ref_fname)
return(string(ref_fname));
}
else {
- const char *fsldir_ptr = getenv("FSLDIR");
- string eref_fname = string(fsldir_ptr) + string("/data/standard/") + ref_fname;
+ string eref_fname = string("@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/data/standard/") + ref_fname;
if (NEWIMAGE::FslFileExists(eref_fname)) return(eref_fname);
else return(string(""));
}
@@ -1230,9 +1229,8 @@ string existing_ref_fname(const string& ref_fname)
NEWIMAGE::read_volume_hdr_only(vref,ref_fname); // Throws if file dont exist
eref_fname = ref_fname;
}
- catch(...) { // Didn't exist in current directory, try in ${FSLDIR}/data/standard
- const char *fsldir_ptr = getenv("FSLDIR");
- eref_fname = string(fsldir_ptr) + string("/data/standard/") + ref_fname;
+ catch(...) { // Didn't exist in current directory, try in .../data/standard
+ eref_fname = string("@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/data/standard/") + ref_fname;
try {
cout << "Could not find " << ref_fname << ", now checking " << eref_fname << endl;
NEWIMAGE::read_volume_hdr_only(vref,eref_fname); // Throws if file dont exist
@@ -1267,8 +1265,7 @@ string existing_conf_file(const string& cfname)
if (check_exist(ecfname)) return(ecfname);
}
if (!FNIRT::path(cfname).length()) { // If no path explicitly given
- const char *fsldir_ptr = getenv("FSLDIR");
- ecfname = string(fsldir_ptr) + string("/etc/flirtsch/") + cfname;
+ ecfname = string("@GENTOO_PORTAGE_EPREFIX@/etc/flirtsch/") + cfname;
if (check_exist(ecfname)) return(ecfname);
else if (!FNIRT::extension(ecfname).length()) { // If no path _and_ no extension given
ecfname += string(".cnf");
diff --git a/src/fslsurface/fslsurface_first.cc b/src/fslsurface/fslsurface_first.cc
index faec642..b2ef794 100644
--- a/src/fslsurface/fslsurface_first.cc
+++ b/src/fslsurface/fslsurface_first.cc
@@ -500,8 +500,7 @@ namespace fslsurface_name {
volume<float>* immni = new volume<float>();
- char* fsldir = getenv("FSLDIR");
- read_volume_hdr_only(*immni, string(fsldir) + "/data/standard/MNI152_T1_1mm");
+ read_volume_hdr_only(*immni, "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/data/standard/MNI152_T1_1mm");
//read_volume_hdr_only(*immni, template_name);
@@ -699,8 +698,7 @@ namespace fslsurface_name {
volume<float>* immni = new volume<float>();
- char* fsldir = getenv("FSLDIR");
- read_volume_hdr_only(*immni, string(fsldir) + "/data/standard/MNI152_T1_1mm");
+ read_volume_hdr_only(*immni, "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/data/standard/MNI152_T1_1mm");
//read_volume_hdr_only(*immni, template_name);
diff --git a/src/fslsurface/fslsurfacemaths.cpp b/src/fslsurface/fslsurfacemaths.cpp
index eaf55eb..3dc184d 100644
--- a/src/fslsurface/fslsurfacemaths.cpp
+++ b/src/fslsurface/fslsurfacemaths.cpp
@@ -598,12 +598,6 @@ int main (int argc, char * argv[])
}else if (command == "-reconFromBvars"){
cout<<"do recon "<<endl;
- char* fsldir = getenv("FSLDIR");
- if (fsldir == NULL)
- {
- cerr<<"FSLDIR has not been set. "<<endl;
- exit(EXIT_FAILURE);
- }
//file.bvars,mni_template.nii.gz
// string mni = string(fsldir)+"/data/standard/MNI152_T1_1mm";
reconSurface_from_bvars( surf, string(argv[i_arg+1]));
@@ -612,12 +606,6 @@ int main (int argc, char * argv[])
}else if (command == "-reconAllFromBvarsAndSave"){
cout<<"do recon+save "<<argc<<" "<<i_arg<<endl;
- char* fsldir = getenv("FSLDIR");
- if (fsldir == NULL)
- {
- cerr<<"FSLDIR has not been set. "<<endl;
- exit(EXIT_FAILURE);
- }
//file.bvars,mni_template.nii.gz
// string mni = string(fsldir)+"/data/standard/MNI152_T1_1mm";
cout<<"recon "<< string(argv[i_arg+1])<<endl;
diff --git a/src/libvis/miscpic.h b/src/libvis/miscpic.h
index a2f3855..5f440f2 100644
--- a/src/libvis/miscpic.h
+++ b/src/libvis/miscpic.h
@@ -90,12 +90,7 @@ namespace MISCPIC{
markRight=false;
trans= -10;
edgethresh = 0.0;
- if(getenv("FSLDIR")!=0){
- lutbase = string(getenv("FSLDIR")) + "/etc/luts/";
- }
- else{
- lutbase = string("/");
- }
+ lutbase = "@GENTOO_PORTAGE_EPREFIX@/etc/luts/";
title = string("");
cbartype = string("");
cbarptr = NULL;
diff --git a/src/melodic/meldata.cc b/src/melodic/meldata.cc
index 1749a45..c4ad234 100644
--- a/src/melodic/meldata.cc
+++ b/src/melodic/meldata.cc
@@ -992,7 +992,7 @@ namespace Melodic{
void MelodicData::est_smoothness()
{
if(Resels == 0){
- string SM_path = opts.binpath + "smoothest";
+ string SM_path = "smoothest";
string Mask_fname = logger.appendDir("mask");
if(opts.segment.value().length()>0){
@@ -1157,7 +1157,7 @@ namespace Melodic{
// set up all strings
string BET_outputfname = string(Mean_fname)+"_brain";
- string BET_path = opts.binpath + "bet";
+ string BET_path = "bet";
string BET_optarg = "-m -f 0.4"; // see man bet
string Mask_fname = BET_outputfname+"_mask";
diff --git a/src/melodic/meloptions.cc b/src/melodic/meloptions.cc
index 08170c7..252e72b 100644
--- a/src/melodic/meloptions.cc
+++ b/src/melodic/meloptions.cc
@@ -93,14 +93,6 @@ MelodicOptions* MelodicOptions::gopt = NULL;
explicitnums = false;
logfname = string("log.txt");
- // work out the path to the $FSLDIR/bin directory
- if(getenv("FSLDIR")!=0){
- binpath = (string) getenv("FSLDIR") + "/bin/";
- } else{
- binpath = argv[0];
- binpath = binpath.substr(0,binpath.length()-7);
- }
-
// parse once to establish log directory name
for(int a = options.parse_command_line(argc, argv); a < argc; a++);
diff --git a/src/melodic/meloptions.h b/src/melodic/meloptions.h
index f546125..b964b7d 100644
--- a/src/melodic/meloptions.h
+++ b/src/melodic/meloptions.h
@@ -93,7 +93,6 @@ class MelodicOptions {
~MelodicOptions() { delete gopt; }
string version;
- string binpath;
string logfname;
bool filtermode;
bool explicitnums;
diff --git a/src/melodic/melreport.cc b/src/melodic/melreport.cc
index 141b6c2..2625059 100644
--- a/src/melodic/melreport.cc
+++ b/src/melodic/melreport.cc
@@ -84,8 +84,8 @@ namespace Melodic{
IChtml.setDir(report.getDir(),mmodel.get_prefix()+".html");
{//start IC page
- IChtml << "<HTML><HEAD><link REL=stylesheet TYPE=text/css href=file:" +
- (string) getenv("FSLDIR") +"/doc/fsl.css>" << endl
+ IChtml << "<HTML><HEAD><link REL=stylesheet TYPE=text/css href=file:"
+ << "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/fsl.css>" << endl
<< "<style type=\"text/css\">OBJECT { width: 100% }</style>"
<< "<TITLE>FSL</TITLE></HEAD>" << endl
<< "<IFRAME height=" << int(melodat.get_numfiles()/30 + 1)*50
@@ -486,8 +486,8 @@ namespace Melodic{
{//start IC2 page
IChtml2.setDir(report.getDir(),mmodel.get_prefix()+"_MM.html");
- IChtml2 << "<HTML><HEAD><link REL=stylesheet TYPE=text/css href=file:" +
- (string) getenv("FSLDIR") +"/doc/fsl.css>" << endl
+ IChtml2 << "<HTML><HEAD><link REL=stylesheet TYPE=text/css href=file:"
+ << "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/fsl.css>" << endl
<< "<style type=\"text/css\">OBJECT { width: 100% }</style>"
<< "<TITLE>FSL</TITLE></HEAD>" << endl
<< "<IFRAME height="<< int(melodat.get_numfiles()/30 + 1)*50
@@ -665,8 +665,8 @@ namespace Melodic{
IChtml << "<HTML> " << endl
<< "<TITLE>MELODIC Component " << num2str(cnum)
<< "</TITLE>" << endl
- << "<BODY BACKGROUND=\"file:" << getenv("FSLDIR")
- << "/doc/images/fsl-bg.jpg\">" << endl
+ << "<BODY BACKGROUND=\"file:"
+ << "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/images/fsl-bg.jpg\">" << endl
<< "<hr><CENTER><H1>MELODIC Component " << num2str(cnum)
<< "</H1>"<< endl;
diff --git a/src/melodic/melreport.h b/src/melodic/melreport.h
index 574fc4c..e444681 100644
--- a/src/melodic/melreport.h
+++ b/src/melodic/melreport.h
@@ -104,21 +104,21 @@ namespace Melodic{
const time_t tmptime = time(NULL);
system(("mkdir "+ logger.appendDir("report") + " 2>/dev/null").c_str());
report.setDir(logger.appendDir("report"),"00index.html",true,false,ios::out);
- report << "<HTML><HEAD><link REL=stylesheet TYPE=text/css href=file:" +
- (string) getenv("FSLDIR") +"/doc/fsl.css>"
+ report << "<HTML><HEAD><link REL=stylesheet TYPE=text/css href=file:"
+ << "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/fsl.css>"
<< "<TITLE>MELODIC report</TITLE></HEAD><BODY>"
<< endl <<endl;
loghtml.setDir(report.getDir(),"log.html");
- loghtml << "<HTML><HEAD><link REL=stylesheet TYPE=text/css href=file:" +
- (string) getenv("FSLDIR") +"/doc/fsl.css>"
+ loghtml << "<HTML><HEAD><link REL=stylesheet TYPE=text/css href=file:"
+ << "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/fsl.css>"
<< "<TITLE>MELODIC report</TITLE></HEAD><BODY>"
<< endl <<endl;
navigator.setDir(report.getDir(),"nav.html");
head.setDir(report.getDir(),"head.html");
- navigator << "<link REL=stylesheet TYPE=text/css href=file:"+
- (string) getenv("FSLDIR") +"/doc/fsl.css>" << endl;
- head << "<link REL=stylesheet TYPE=text/css href=file:"+
- (string) getenv("FSLDIR") +"/doc/fsl.css>" << endl;
+ navigator << "<link REL=stylesheet TYPE=text/css href=file:"
+ << "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/fsl.css>" << endl;
+ head << "<link REL=stylesheet TYPE=text/css href=file:"
+ << "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/fsl.css>" << endl;
head <<"<TABLE BORDER=0><TR>" << endl
<<" <TD ALIGN=CENTER WIDTH=100%>"<< endl
<<"<TABLE BORDER=0>"<< endl
@@ -130,8 +130,8 @@ namespace Melodic{
<< "</tr></table>" << endl
<< "<TD ALIGN=RIGHT>" << endl
<< "<a href=http://www.fmrib.ox.ac.uk/fsl target=_top>" << endl
- << "<IMG BORDER=0 SRC=file:"<< getenv("FSLDIR")
- << "/doc/images/fsl-logo-big.jpg WIDTH=165></a>" << endl
+ << "<IMG BORDER=0 SRC=file:"
+ << "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/images/fsl-logo-big.jpg WIDTH=165></a>" << endl
<< "</TD>"<<endl<<"</TR></TABLE> <hr>"<<endl;
if(opts.guireport.value()==""){
report <<"<OBJECT data=head.html></OBJECT>" << endl;
diff --git a/src/mm/mixture_model.cc b/src/mm/mixture_model.cc
index b8e6167..5f00693 100644
--- a/src/mm/mixture_model.cc
+++ b/src/mm/mixture_model.cc
@@ -2224,8 +2224,8 @@ namespace Mm {
htmllog << "<HTML> " << endl
<< "<TITLE>Mixture Model fit for" << data_name << "</TITLE>" << endl
- << "<BODY BACKGROUND=\"file:" << getenv("FSLDIR")
- << "/doc/images/fsl-bg.jpg\">" << endl
+ << "<BODY BACKGROUND=\"file:"
+ << "@GENTOO_PORTAGE_EPREFIX@/usr/share/fsl/doc/images/fsl-bg.jpg\">" << endl
<< "<hr><CENTER><H1>Mixture Model fit for<br>" << data_name << " </H1>"<< endl;
htmllog << "<hr><p>" << endl;
diff --git a/src/siena/siena_diff.cc b/src/siena/siena_diff.cc
index e19193a..17d8701 100644
--- a/src/siena/siena_diff.cc
+++ b/src/siena/siena_diff.cc
@@ -107,7 +107,7 @@ int main(int argc,char *argv[])
{
// {{{ vars
-char thestring[10000], segoptions[10000], fsldir[10000];
+char thestring[10000], segoptions[10000];
int x_size, y_size, z_size, size, x, y, z, i, count,
seg2=0, ignore_z=0, ignore_top_slices=0, //erode_mask=0,
ignore_bottom_slices=0, debug=0, flow_output=1, edge_masking=0;
@@ -124,8 +124,6 @@ if (argc<3)
string argv1(argv[1]), argv2(argv[2]);
-sprintf(fsldir,"%s",getenv("FSLDIR"));
-
for (i = 3; i < argc; i++) {
if (!strcmp(argv[i], "-i"))
ignore_z=1;
@@ -209,26 +207,26 @@ for (i = 3; i < argc; i++) {
// }}}
// {{{ transform images and masks
-sprintf(thestring,"%s/bin/flirt -o %s_halfwayto_%s -applyisoxfm 1 -paddingsize 0 -init %s_halfwayto_%s.mat -ref %s -in %s",
- fsldir,argv[1],argv[2],argv[1],argv[2],argv[1],argv[1]);
+sprintf(thestring,"flirt -o %s_halfwayto_%s -applyisoxfm 1 -paddingsize 0 -init %s_halfwayto_%s.mat -ref %s -in %s",
+ argv[1],argv[2],argv[1],argv[2],argv[1],argv[1]);
printf("%s\n",thestring); system(thestring);
-sprintf(thestring,"%s/bin/flirt -o %s_halfwayto_%s -applyisoxfm 1 -paddingsize 0 -init %s_halfwayto_%s.mat -ref %s -in %s",
- fsldir,argv[2],argv[1],argv[2],argv[1],argv[1],argv[2]);
+sprintf(thestring,"flirt -o %s_halfwayto_%s -applyisoxfm 1 -paddingsize 0 -init %s_halfwayto_%s.mat -ref %s -in %s",
+ argv[2],argv[1],argv[2],argv[1],argv[1],argv[2]);
printf("%s\n",thestring); system(thestring);
-sprintf(thestring,"%s/bin/flirt -o %s_halfwayto_%s_mask -applyisoxfm 1 -paddingsize 0 -init %s_halfwayto_%s.mat -ref %s -in %s_brain_mask",
- fsldir,argv[1],argv[2],argv[1],argv[2],argv[1],argv[1]);
+sprintf(thestring,"flirt -o %s_halfwayto_%s_mask -applyisoxfm 1 -paddingsize 0 -init %s_halfwayto_%s.mat -ref %s -in %s_brain_mask",
+ argv[1],argv[2],argv[1],argv[2],argv[1],argv[1]);
printf("%s\n",thestring); system(thestring);
-sprintf(thestring,"%s/bin/flirt -o %s_halfwayto_%s_mask -applyisoxfm 1 -paddingsize 0 -init %s_halfwayto_%s.mat -ref %s -in %s_brain_mask",
- fsldir,argv[2],argv[1],argv[2],argv[1],argv[1],argv[2]);
+sprintf(thestring,"flirt -o %s_halfwayto_%s_mask -applyisoxfm 1 -paddingsize 0 -init %s_halfwayto_%s.mat -ref %s -in %s_brain_mask",
+ argv[2],argv[1],argv[2],argv[1],argv[1],argv[2]);
printf("%s\n",thestring); system(thestring);
if (edge_masking)
{
- sprintf(thestring,"%s/bin/flirt -o %s_halfwayto_%s_valid_mask -applyisoxfm 1 -paddingsize 0 -init %s_halfwayto_%s.mat -ref %s -in %s_valid_mask_with_%s",
- fsldir,argv[1],argv[2],argv[1],argv[2],argv[1],argv[1],argv[2]);
+ sprintf(thestring,"flirt -o %s_halfwayto_%s_valid_mask -applyisoxfm 1 -paddingsize 0 -init %s_halfwayto_%s.mat -ref %s -in %s_valid_mask_with_%s",
+ argv[1],argv[2],argv[1],argv[2],argv[1],argv[1],argv[2]);
printf("%s\n",thestring); system(thestring);
}
@@ -287,8 +285,8 @@ if(1) // always done unless the above uncommented and used instead of this test
cout << "saving image 1 to disk prior to segmentation" << endl;
save_volume(in1,argv1+"_halfwayto_"+argv2+"_brain");
in1.destroy();
- sprintf(thestring,"%s/bin/fast %s %s %s_halfwayto_%s_brain > %s_halfwayto_%s_brain.vol 2>&1",
- fsldir,segtype,segoptions,argv[1],argv[2],argv[1],argv[2]);
+ sprintf(thestring,"fast %s %s %s_halfwayto_%s_brain > %s_halfwayto_%s_brain.vol 2>&1",
+ segtype,segoptions,argv[1],argv[2],argv[1],argv[2]);
cout << thestring << endl;
system(thestring);
}
diff --git a/src/topup/topupfns.cpp b/src/topup/topupfns.cpp
index 6873758..9e8b956 100644
--- a/src/topup/topupfns.cpp
+++ b/src/topup/topupfns.cpp
@@ -463,8 +463,7 @@ string existing_conf_file(const string& cfname)
if (TOPUP::check_exist(ecfname)) return(ecfname);
}
if (!TOPUP::path(cfname).length()) { // If no path explicitly given
- const char *fsldir_ptr = getenv("FSLDIR");
- ecfname = string(fsldir_ptr) + string("/etc/flirtsch/") + cfname;
+ ecfname = string("@GENTOO_PORTAGE_EPREFIX@/etc/flirtsch/") + cfname;
if (TOPUP::check_exist(ecfname)) return(ecfname);
else if (!TOPUP::extension(ecfname).length()) { // If no path _and_ no extension given
ecfname += string(".cnf");

View File

@ -0,0 +1,44 @@
diff --git a/src/flameo/Makefile b/src/flameo/Makefile
index d22eb965..e967e682 100644
--- a/src/flameo/Makefile
+++ b/src/flameo/Makefile
@@ -2,7 +2,7 @@ include ${FSLCONFDIR}/default.mk
PROJNAME = flame
-USRINCFLAGS = -I${INC_NEWMAT} -I${INC_PROB} -I${INC_ZLIB} -DCIFTILIB_USE_XMLPP -I${FSLEXTINC} -I${INC_XML2} -I${INC_XML++} -I${INC_XML++CONF} -I${INC_BOOST} -I${FSLDIR}/include/ciftiio
+USRINCFLAGS = -fPIC -I${INC_NEWMAT} -I${INC_PROB} -I${INC_ZLIB} -I${FSLEXTINC} ${CIFTICFLAGS} -I${INC_BOOST} -I${FSLDIR}/include/ciftiio
USRLDFLAGS = -L${LIB_NEWMAT} -L${LIB_PROB} -L${LIB_ZLIB}
UNAME := $(shell uname)
@@ -10,7 +10,7 @@ ifeq (${UNAME},Darwin)
LIBS = -liconv
endif
-LIBS += -lutils -lnewimage -lmiscmaths -lm -lnewmat -lNewNifti -lcifti -lxml++-2.6 -lxml2 -lboost_filesystem -lboost_system -lznz -lprob -lz
+LIBS += -lutils -lnewimage -lmiscmaths -lm -lnewmat -lNewNifti ${CIFTILIBS} -lboost_filesystem -lboost_system -lznz -lprob -lz
XFILES = flameo
diff --git a/src/melodic/Makefile b/src/melodic/Makefile
index 50666517..0c356a2d 100644
--- a/src/melodic/Makefile
+++ b/src/melodic/Makefile
@@ -7,7 +7,7 @@ OPTFLAGS_alphaev6-dec-osf5.0-gcc2.95.2 = -O3 -mieee -mfp-trap-mode=sui
PROJNAME = melodic
-USRINCFLAGS = -I${INC_NEWMAT} -I${INC_PROB} -I${INC_GD} -I${INC_GDC} -I${INC_PNG} -I${INC_ZLIB} -DCIFTILIB_USE_XMLPP -I${FSLEXTINC} -I${INC_XML2} -I${INC_XML++} -I${INC_XML++CONF} -I${INC_BOOST} -I${FSLDIR}/include/ciftiio
+USRINCFLAGS = -fPIC -I${INC_NEWMAT} -I${INC_PROB} -I${INC_GD} -I${INC_GDC} -I${INC_PNG} -I${INC_ZLIB} -I${FSLEXTINC} ${CIFTICFLAGS} -I${INC_BOOST} -I${FSLDIR}/include/ciftiio
USRLDFLAGS = -L${LIB_NEWMAT} -L${LIB_PROB} -L${LIB_GD} -L${LIB_GDC} -L${LIB_PNG} -L${LIB_ZLIB}
UNAME := $(shell uname)
@@ -15,7 +15,7 @@ ifeq (${UNAME},Darwin)
LIBS = -liconv
endif
-LIBS += -lutils -lnewimage -lmiscplot -lmiscpic -lmiscmaths -lNewNifti -lcifti -lxml++-2.6 -lxml2 -lboost_filesystem -lboost_system -lznz -lnewmat -lprob -lm -lgdc -lgd -lpng -lz
+LIBS += -lutils -lnewimage -lmiscplot -lmiscpic -lmiscmaths -lNewNifti ${CIFTILIBS} -lboost_filesystem -lboost_system -lznz -lnewmat -lprob -lm -lgdc -lgd -lpng -lz
TEST_OBJS = test.o

View File

@ -0,0 +1,48 @@
diff --git a/src/flameo/gsa.cc b/src/flameo/gsa.cc
index 70f8f385..16167abe 100644
--- a/src/flameo/gsa.cc
+++ b/src/flameo/gsa.cc
@@ -74,7 +74,7 @@ namespace GSA {
sourceType=mode;
if ( sourceType.compare("CIFTI") == 0 ) {
cifti::CiftiFile inputCifti;
- inputCifti.openFile(make_basename(filename)+".nii");
+ inputCifti.openFile((make_basename(filename)+".nii").c_str());
ciftiExemplar=inputCifti.getCiftiXML();
cerr << "ndim " << ciftiExemplar.getNumberOfDimensions() << endl;
cerr << "type1 " << ciftiExemplar.getMappingType(0) << endl;
@@ -194,7 +194,7 @@ namespace GSA {
scalarsMap.setLength(data.Nrows());
ciftiExemplar.setMap(0, scalarsMap);
CiftiFile outputFile;
- outputFile.setWritingFile(make_basename(filename)+extension+".nii");//sets up on-disk writing with default writing version
+ outputFile.setWritingFile((make_basename(filename)+extension+".nii").c_str());//sets up on-disk writing with default writing version
outputFile.setCiftiXML(ciftiExemplar,false);
vector<float> scratchRow(data.Nrows());//read/write a row at a time
for (int64_t row=0;row<data.Ncols();row++) {
diff --git a/src/melodic/meldata.cc b/src/melodic/meldata.cc
index 1749a459..b76f052d 100644
--- a/src/melodic/meldata.cc
+++ b/src/melodic/meldata.cc
@@ -118,7 +118,7 @@ namespace Melodic{
tmpData = RawData.matrix(Mask);
memmsg(" after reshape ");
} else { //Read in Cifti
- inputCifti.openFile(fname+".nii");
+ inputCifti.openFile((fname+".nii").c_str());
const vector<int64_t>& dims = inputCifti.getDimensions();
tmpData.ReSize(dims[0],dims[1]); //swapped compared to cifti
vector<float> scratchRow(dims[0]);//read/write a row at a time
diff --git a/src/melodic/meldata.h b/src/melodic/meldata.h
index 49774003..f5326bdd 100644
--- a/src/melodic/meldata.h
+++ b/src/melodic/meldata.h
@@ -109,7 +109,7 @@ namespace Melodic{
message(" " << logger.appendDir(fname) << endl);
} else { //Process CIFTI save ICs as float
cifti::CiftiFile outputFile;
- outputFile.setWritingFile(logger.appendDir(fname)+".nii");//sets up on-disk writing with default writing version
+ outputFile.setWritingFile((logger.appendDir(fname)+".nii").c_str());//sets up on-disk writing with default writing version
cifti::CiftiXML xml(inputCifti.getCiftiXML());
cifti::CiftiScalarsMap scalarsMap;
std::vector<char> foo = xml.writeXMLToVector();

View File

@ -1,5 +1,5 @@
diff --git a/build b/build
index 05dac06..d90e407 100755
index 05dac06c..d90e407b 100755
--- a/build
+++ b/build
@@ -3,7 +3,7 @@
@ -23,7 +23,7 @@ index 05dac06..d90e407 100755
if [ $finalStatus -eq 0 ]; then
echo "Build completed successfully.";
diff --git a/config/buildSettings.mk b/config/buildSettings.mk
index b2e1f15..04532fc 100644
index b2e1f150..04532fc2 100644
--- a/config/buildSettings.mk
+++ b/config/buildSettings.mk
@@ -18,7 +18,7 @@ MV = /bin/mv
@ -74,7 +74,7 @@ index b2e1f15..04532fc 100644
QTDIR = /usr/lib/qt3
LIB_QT = ${QTDIR}/lib
diff --git a/config/common/buildproj b/config/common/buildproj
index 2f0f2b8..48624a1 100755
index 2f0f2b8f..48624a1f 100755
--- a/config/common/buildproj
+++ b/config/common/buildproj
@@ -11,10 +11,10 @@ if [ X$1 = X-strict ] ; then
@ -116,7 +116,7 @@ index 2f0f2b8..48624a1 100755
fi
done
diff --git a/config/common/vars.mk b/config/common/vars.mk
index b027b01..aeeae67 100755
index b027b010..aeeae67c 100755
--- a/config/common/vars.mk
+++ b/config/common/vars.mk
@@ -24,15 +24,15 @@ USRINCFLAGS =
@ -141,10 +141,20 @@ index b027b01..aeeae67 100755
HFILES = *.h
AFILES = *.a
diff --git a/extras/build b/extras/build
index 59e7a2e..2cead09 100755
index 59e7a2ed..0d68232e 100755
--- a/extras/build
+++ b/extras/build
@@ -104,8 +104,8 @@ PROJECTS="${PROJECTS} libpng"
@@ -96,16 +96,16 @@ if [ X"${OS}" = "XDarwin" ]; then
BUILDICONV=1
fi
fi
-PROJECTS="tcl tk"
+#PROJECTS="tcl tk"
if [ ${BUILDZLIB} -eq 1 ]; then
PROJECTS="${PROJECTS} zlib"
fi
-PROJECTS="${PROJECTS} libpng"
+#PROJECTS="${PROJECTS} libpng"
if [ ${BUILDICONV} -eq 1 ]; then
PROJECTS="${PROJECTS} libiconv"
fi
@ -156,7 +166,7 @@ index 59e7a2e..2cead09 100755
if [ -d $FSLESRCDIR/$projname ] ; then
buildIt $FSLESRCDIR $projname 1
diff --git a/src/mist-clean/Makefile b/src/mist-clean/Makefile
index 20402cc..6918bee 100755
index 20402cca..6918bee4 100755
--- a/src/mist-clean/Makefile
+++ b/src/mist-clean/Makefile
@@ -52,6 +52,6 @@ installpython:

View File

@ -14,7 +14,7 @@ SLOT="0"
KEYWORDS="~amd64"
IUSE=""
COMMON_DEPEND="
DEPEND="
dev-libs/boost
media-gfx/graphviz
media-libs/gd
@ -23,25 +23,25 @@ COMMON_DEPEND="
sci-libs/ciftilib
sci-libs/nlopt
sys-libs/zlib
"
DEPEND="${COMMON_DEPEND}"
RDEPEND="${COMMON_DEPEND}
dev-lang/tcl:0=
dev-lang/tk:0=
virtual/lapack
virtual/blas
"
RDEPEND="${DEPEND}"
S=${WORKDIR}/${PN}
UPSTREAM_FSLDIR="/usr/share/fsl"
PATCHES=(
"${FILESDIR}/${PN}"-6.0.2-setup.patch
#"${FILESDIR}/${PN}"-5.0.11-no_xmlpp.patch
"${FILESDIR}/${PN}"-6.0.2-no_xmlpp.patch
"${FILESDIR}/${PN}"-5.0.11-niftiio_var_fix.patch
"${FILESDIR}/${PN}"-5.0.11-ifstream_use.patch
"${FILESDIR}/${PN}"-5.0.11-fslsurface_parallel_make.patch
#"${FILESDIR}/${PN}"-5.0.11-qstring_compat.patch
"${FILESDIR}/${PN}"-6.0.2-qstring_compat.patch
"${FILESDIR}/${PN}"-5.0.9-headers.patch
#"${FILESDIR}/${PN}"-5.0.9-fsldir_redux.patch
"${FILESDIR}/${PN}"-6.0.2-fsldir_redux.patch
)
src_prepare(){
@ -56,6 +56,9 @@ src_prepare(){
eprefixify $(grep -rl GENTOO_PORTAGE_EPREFIX src/*) \
etc/js/label-div.html
# Disable mist-clean the hard way for now.
rm -rf src/mist-clean
makefilelist=$(find src/ -name Makefile)
sed -i \
@ -71,7 +74,13 @@ src_prepare(){
sed -e "s:\${FSLDIR}/bin/::g" \
-e "s:\$FSLDIR/bin/::g" \
-i $(grep -rl "\${FSLDIR}/bin" src/*) \
$(grep -rl "\${FSLDIR}/bin" etc/matlab/*) || die
-i $(grep -rl "\$FSLDIR/bin" src/*) \
$(grep -rl "\${FSLDIR}/bin" etc/matlab/*)\
$(grep -rl "\$FSLDIR/bin" etc/matlab/*) || die
# Not caught by the previous sed. Usually append
sed -e "s:\${FSLDIR}/bin::g" \
-i $(grep -rl "\${FSLDIR}/bin" src/*) || die
sed -e "s:\$FSLDIR/data:${EPREFIX}/usr/share/fsl/data:g" \
-e "s:\${FSLDIR}/data:${EPREFIX}/usr/share/fsl/data:g" \