Import("phaser_env", "env_etc") lib_phaser_sources=Split(""" aniso.cc best.cc euler.cc eLLG.cc factor.cc func_ops.cc is_pointgroup.cc jiffy.cc math_alogch.cc math_besrat.cc math_eBesselI0.cc math_eBesselI1.cc math_RiceWoolfson.cc math_sim.cc math_Gfunc.cc math_DLuzzati.cc math_ParabolicCylinderD.cc math_FrenchWilson.cc math_RiceLLG.cc math_pIntensity.cc matthewsProb.cc rad2phi.cc rmdirs.cc rotationgroup.cc rotdist.cc round.cc safe_mtz.cc signal.cc scattering.cc sg_prior.cc sphericalY.cc xyzRotMatDeg.cc xyz_weight.cc fasta2str.cc """) # Phaser uses Boost.Filesystem, which is not header only. Rather than build the # entire Boost.Filesystem library we can just add the file utf8_codecvt_facet.cpp # to the compilation items as suggested here: # http://semmel.wordpress.com/2011/01/19/processing-utf-8-text-in-c/ # XXX maybe utf8_codecvt_facet.cpp should be built elsewhere? # Due to the transition from v2 to v3 of Boost.Filesystem, the location of this # file varies depending upon the Boost version used. if env_etc.boost_version < 104600: pass elif env_etc.boost_version < 105000: lib_phaser_sources.append( "#boost/libs/filesystem/v3/src/utf8_codecvt_facet.cpp") else: lib_phaser_sources.append( "#boost/libs/filesystem/src/utf8_codecvt_facet.cpp") env_etc.phaser_all_libs.append( phaser_env.StaticLibrary(target="#lib/phaserlib", source=lib_phaser_sources))