forked from boostorg/regex
Try and improve ICU detection to avoid "DLL Hell".
This commit is contained in:
@ -115,7 +115,21 @@ if ! $(disable-icu)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exe has_icu : ./has_icu_test.cpp : $(ICU_OPTS) ;
|
actions regex_simple_run_action
|
||||||
|
{
|
||||||
|
$(>) > $(<)
|
||||||
|
}
|
||||||
|
|
||||||
|
rule regex-run-simple ( sources + : args * : input-files * : requirements * : target-name )
|
||||||
|
{
|
||||||
|
exe $(target-name)_exe : $(sources) : $(requirements) ;
|
||||||
|
explicit $(target-name)_exe ;
|
||||||
|
make $(target-name).output : $(target-name)_exe : @mp_simple_run_action ;
|
||||||
|
explicit $(target-name).output ;
|
||||||
|
alias $(target-name) : $(target-name).output ;
|
||||||
|
}
|
||||||
|
|
||||||
|
regex-run-simple has_icu_test.cpp : : : $(ICU_OPTS) : has_icu ;
|
||||||
explicit has_icu ;
|
explicit has_icu ;
|
||||||
|
|
||||||
alias icu_options : : : : [ check-target-builds has_icu : $(ICU_OPTS) : ] ;
|
alias icu_options : : : : [ check-target-builds has_icu : $(ICU_OPTS) : ] ;
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <unicode/utypes.h>
|
#include <unicode/utypes.h>
|
||||||
#include <unicode/uchar.h>
|
#include <unicode/uchar.h>
|
||||||
#include <unicode/coll.h>
|
#include <unicode/coll.h>
|
||||||
|
#include <boost/scoped_ptr.hpp>
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(_DLL)
|
#if defined(_MSC_VER) && !defined(_DLL)
|
||||||
#error "Mixing ICU with a static runtime doesn't work"
|
#error "Mixing ICU with a static runtime doesn't work"
|
||||||
@ -22,5 +23,8 @@ int main()
|
|||||||
{
|
{
|
||||||
UErrorCode err = U_ZERO_ERROR;
|
UErrorCode err = U_ZERO_ERROR;
|
||||||
UChar32 c = ::u_charFromName(U_UNICODE_CHAR_NAME, "GREEK SMALL LETTER ALPHA", &err);
|
UChar32 c = ::u_charFromName(U_UNICODE_CHAR_NAME, "GREEK SMALL LETTER ALPHA", &err);
|
||||||
|
if(err) return err;
|
||||||
|
U_NAMESPACE_QUALIFIER Locale l;
|
||||||
|
boost::scoped_ptr<U_NAMESPACE_QUALIFIER Collator> p_col(U_NAMESPACE_QUALIFIER Collator::createInstance(l, err));
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user