mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-12-28 14:32:38 +03:00
1740478238
Derive your property class from PhraseProperty. Do any expensive string processing of the property value in there, not in the feature implementation, and provide methods to access the information in appropriate data formats. The property value string will thus have to be processed only once (on loading) rather than each time the respective phrase is applied and your feature needs to access the property value.
89 lines
2.6 KiB
Plaintext
89 lines
2.6 KiB
Plaintext
max-factors = [ option.get "max-factors" : 4 : 4 ] ;
|
|
path-constant FACTOR-LOG : bin/factor.log ;
|
|
update-if-changed $(FACTOR-LOG) $(max-factors) ;
|
|
max-factors = <define>MAX_NUM_FACTORS=$(max-factors) <dependency>$(FACTOR-LOG) ;
|
|
|
|
with-dlib = [ option.get "with-dlib" ] ;
|
|
if $(with-dlib) {
|
|
dlib = <define>WITH_DLIB <include>$(with-dlib) ;
|
|
} else {
|
|
dlib = ;
|
|
}
|
|
|
|
alias headers : ../util//kenutil : : : $(max-factors) $(dlib) ;
|
|
alias ThreadPool : ThreadPool.cpp ;
|
|
alias Util : Util.cpp Timer.cpp ;
|
|
|
|
if [ option.get "with-synlm" : no : yes ] = yes
|
|
{
|
|
lib m ;
|
|
obj SyntacticLanguageModel.o : SyntacticLanguageModel.cpp headers : <include>$(TOP)/synlm/hhmm/rvtl/include <include>$(TOP)/synlm/hhmm/wsjparse/include ;
|
|
alias synlm : SyntacticLanguageModel.o m : : : <define>HAVE_SYNLM ;
|
|
} else {
|
|
alias synlm ;
|
|
}
|
|
|
|
#This is a kludge to force rebuilding if different --with options are passed.
|
|
#Could have used features like <srilm>on but getting these to apply only to
|
|
#linking was ugly and it still didn't trigger an install (since the install
|
|
#path doesn't encode features). It stores a file lm.log with the previous
|
|
#options and forces a rebuild if the current options differ.
|
|
local current = ;
|
|
for local i in srilm irstlm randlm {
|
|
local optval = [ option.get "with-$(i)" ] ;
|
|
if $(optval) {
|
|
current += "--with-$(i)=$(optval)" ;
|
|
}
|
|
}
|
|
current = $(current:J=" ") ;
|
|
current ?= "" ;
|
|
path-constant LM-LOG : bin/lm.log ;
|
|
update-if-changed $(LM-LOG) $(current) ;
|
|
|
|
obj FF_Factory.o : FF/Factory.cpp LM//macros headers ../lm//kenlm mmlib : <dependency>$(LM-LOG) ;
|
|
|
|
if [ option.get "with-mm" : no : yes ] = yes
|
|
{
|
|
alias mmlib :
|
|
$(TOP)/moses/TranslationModel/UG//mmsapt
|
|
$(TOP)/moses/TranslationModel/UG/generic//generic
|
|
$(TOP)/moses/TranslationModel/UG/mm//mm
|
|
;
|
|
} else {
|
|
alias mmlib ;
|
|
}
|
|
|
|
lib moses :
|
|
[ glob
|
|
*.cpp
|
|
TranslationModel/*.cpp
|
|
TranslationModel/fuzzy-match/*.cpp
|
|
TranslationModel/DynSAInclude/*.cpp
|
|
TranslationModel/RuleTable/*.cpp
|
|
TranslationModel/Scope3Parser/*.cpp
|
|
TranslationModel/CYKPlusParser/*.cpp
|
|
FF/*.cpp
|
|
FF/OSM-Feature/*.cpp
|
|
FF/LexicalReordering/*.cpp
|
|
PP/*.cpp
|
|
: #exceptions
|
|
ThreadPool.cpp
|
|
SyntacticLanguageModel.cpp
|
|
*Test.cpp Mock*.cpp
|
|
FF/Factory.cpp
|
|
]
|
|
headers FF_Factory.o LM//LM TranslationModel/CompactPT//CompactPT synlm ThreadPool
|
|
..//search ../util/double-conversion//double-conversion ..//z ../OnDiskPt//OnDiskPt
|
|
$(TOP)//boost_iostreams mmlib
|
|
:
|
|
<threading>single:<source>../util//rt
|
|
;
|
|
|
|
|
|
alias headers-to-install : [ glob-tree *.h ] ;
|
|
|
|
import testing ;
|
|
|
|
unit-test moses_test : [ glob *Test.cpp Mock*.cpp ] moses headers ..//z ../OnDiskPt//OnDiskPt ..//boost_unit_test_framework ;
|
|
|