This post originated from an RSS feed registered with Ruby Buzz
by Daniel Berger.
Original Post: have_enum_member, will travel
Feed Title: Testing 1,2,3...
Feed URL: http://djberg96.livejournal.com/data/rss
Feed Description: A blog on Ruby and other stuff.
Here's a patch that solves the problem I mentioned in my last journal entry. It will test for the presence of a enum member, and give you a HAVE_ENUM_XXX preprocessor constant you can then use in your extension. I've submitted it for official approval. We'll see what happens. In the meantime, enjoy.
--- mkmf.bak Fri Feb 11 08:30:47 2005 +++ mkmf.rb Fri Feb 11 09:33:47 2005 @@ -552,6 +552,23 @@ end end
+def have_enum_member(type, member, header = nil, &b) + checking_for "#{type}.#{member}" do + if try_compile(<<"SRC", &b) +#{COMMON_HEADERS} +#{cpp_include(header)} +/*top*/ +static #{type} t; +int s = #{member}; +SRC + $defs.push(format("-DHAVE_ENUM_%s", member.upcase)) + true + else + false + end + end +end + def have_type(type, header = nil, opt = "", &b) checking_for type do header = cpp_include(header)