O/H Gerrick Bivins ??????:
Hello,
Another newbie question, I think I know how to create .java files from swig using Cmake and I think I know how to create a jar file from .class BUT I'm not sure how to call the java compiler (javac) on each .java file to create my .class files. For starters, how would I loop over the *.java files in a given directory? Does, FOREACH support this? I'm unable to find much info on it in the "Mastering Cmake" book.
Gerrick
Dear Gerrick,

I am not sure if this is the correct answer (I am also a newbie :-) ), but I have added these commands to my CMakeLists.txt:

IF ( ENABLE_JAVA_SUPPORT )
   MESSAGE ( STATUS "Searching for Java..." )
   FIND_PACKAGE ( Java )
   FIND_PACKAGE ( JNI )
ENDIF ( ENABLE_JAVA_SUPPORT )
IF ( JAVA_COMPILE )
 MESSAGE ( STATUS " ===========================================" )
 MESSAGE ( STATUS "  Java" )
 MESSAGE ( STATUS " ===========================================" )
## =========================================================================
 ##  Get Java version...
## =========================================================================
 EXECUTE_PROCESS ( COMMAND ${JAVA_COMPILE} -version
                   OUTPUT_VARIABLE JAVA_OUTPUT
                   ERROR_VARIABLE  JAVA_ERROR_OUTPUT
                   RESULT_VARIABLE JAVA_RETURN_VALUE )
 IF ( NOT JAVA_RETURN_VALUE )
   STRING ( REGEX MATCH [0-9._]+ JAVA_VERSION ${JAVA_ERROR_OUTPUT} )
 ENDIF ( NOT JAVA_RETURN_VALUE )

 GET_FILENAME_COMPONENT (JAVA_BIN_PATH "${JAVA_COMPILE}" PATH)
 FIND_PROGRAM ( JAVA_JAVA_H javah PATHS ${JAVA_BIN_PATH} )

 MESSAGE ( STATUS "  JAVA_VERSION:           " ${JAVA_VERSION} )
 MESSAGE ( STATUS "  JAVA_RUNTIME:           " ${JAVA_RUNTIME} )
 MESSAGE ( STATUS "  JAVA_COMPILE:           " ${JAVA_COMPILE} )
 MESSAGE ( STATUS "  JAVA_ARCHIVE:           " ${JAVA_ARCHIVE} )
 MESSAGE ( STATUS "  JAVA_JAVA_H:            " ${JAVA_JAVA_H} )
 MESSAGE ( STATUS "  JAVA_INCLUDE_PATH:      " ${JAVA_INCLUDE_PATH} )
 MESSAGE ( STATUS "  JAVA_INCLUDE_PATH2:     " ${JAVA_INCLUDE_PATH2} )
 MESSAGE ( STATUS "  JAVA_JVM_LIBRARY:       " ${JAVA_JVM_LIBRARY} )
 SET ( PKG_SUPPORT_JAVA 1 )
ENDIF ( JAVA_COMPILE )
SET ( TCLBLEND_JAR_SRCS               tcl/lang/CObject.java
                                     tcl/lang/IdleHandler.java
                                     tcl/lang/Interp.java
                                     tcl/lang/Notifier.java
                                     tcl/lang/TclList.java
                                     tcl/lang/TclObject.java
                                     tcl/lang/TimerHandler.java
                                     tcl/lang/Util.java )
IF ( WIN32 )
 SET  ( tcljava_CLASSPATH
   ".\;../empty/empty.jar\;../tcljava\;${CMAKE_CURRENT_BINARY_DIR}" )
ELSE ( WIN32 )
 SET  ( tcljava_CLASSPATH
   ".:../empty/empty.jar:../tcljava:${CMAKE_CURRENT_BINARY_DIR}" )
ENDIF ( WIN32 )
ADD_CUSTOM_TARGET ( tcljava.jar.classes
   COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}
           -classpath ${tcljava_CLASSPATH} ${TCLJAVA_JAR_SRCS}
   WORKING_DIRECTORY src/tcljava )
ADD_CUSTOM_TARGET ( tcljava.jar
   COMMAND ${JAVA_ARCHIVE} cvf ${CMAKE_CURRENT_BINARY_DIR}/tcljava.jar
           tcl
   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )
ADD_DEPENDENCIES ( tcljava.jar tcljava.jar.classes )

George
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to