Re: preprocessor idea
On 10/17/2011 12:53 PM, Robert Klemme wrote:
On 10/17/2011 04:32 AM, Arne Vajh?j wrote:
On 10/16/2011 5:56 PM, Robert Klemme wrote:
On 10/14/2011 04:49 AM, Arne Vajh?j wrote:
On 10/13/2011 12:35 PM, Robert Klemme wrote:
On 12.10.2011 01:17, Arne Vajh?j wrote:
Run the Java code through the C preprocessor with the same defines.
String[] javaarray = {
"None"
#ifdef lib1
,"lib1"
#endif
#ifdef lib1
,"lib1"
#endif
};
I do not think it's worthwhile to open that can of worms for this
decision. After all getting rid of the CPP is one of the major
advantages of Java over C++ (even Stroustrup regrets not having ripped
it out of C++) and complicating the Java build process just for that
decision seems too heavy - especially since there are other solutions
available.
What other solution achieve the same?
Please see elsewhere in this thread.
Well - they do not seem to be on my news server.
The only suggestion it carry are yours of:
* changing the logic, which may be a good idea, but is definitely
not the same
Do you say that because of
Java does not support any preprocessor
flags, but in this case I need a tip for creating a flexiable Java
code during the class is compiled
(eg: ifdef1 = true => String[] javaarray = {"lib1"})
? Right, I took the liberty to ignore the specific requirement to change
the Java code because I consider the ultimate task to solve to only load
those libs which can be used. Changing the Java code is just one means
to that end.
Alternative approaches can be very good.
But it is an alternative approach.
* use JNI to get the info from the native side, which will
require approx. 10 as much code than this
Well, but the solution to use CPP for Java code will probably need a
similar amount of code - even if it's not in Java but in ant scripts or
Makefiles. And it will be a dramatic change to the build process. One
also needs to decide whether to apply CPP to all Java files or just
selectively to a single one. The first option is probably cleaner from a
build process point of view but increases the risk of bugs (i.e. if CPP
starts replacing things in other files that it is not supposed to
change) while the second solution is an ugly crutch IMHO.
It will require adding 1 line to the makefile/build script.
Arne