hi, i found the problem, just in case anyone is interested. the problem was, that i use "package first.second.third;" in my java-sources, so that the class files are compiled to ${CMAKE_CURRENT_BINARY_DIR}/first/second/third/file.class and not to ${CMAKE_CURRENT_BINARY_DIR}/file.class, which is while the depend never found the class files.
the remaining problem is to build the jar file on dependency of changes of the class files. what i am currently trying is: SET(MY_FILES File1 File2 File3) SET(CLASS_FILES) FOREACH(f ${MY_FILES}) LIST(APPEND CLASS_FILES ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_PATH}/${f}.class) ENDFOREACH(f ${MY_FILES}) ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/${JAR_DIR}/${JAR_FILE} DEPENDS ${CLASS_FILES} COMMAND ${CMAKE_COMMAND} ARGS -E chdir ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_Java_ARCHIVE} cfm ${CMAKE_BINARY_DIR}/${JAR_DIR}/${JAR_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/MANIFEST.MF org) ADD_CUSTOM_TARGET(${JAR_FILE} ALL DEPENDS ${PROJECT_BINARY_DIR}/${JAR_DIR}/${JAR_FILE}) but the jar files is build every time i call make. regards, keyan On 10 Dec 2009, at 18:14, Keyan wrote: > hi, > > i am tryting to build java code in my otherwise c++ project. for some reason, > i just cant get add_custom_command to do what i want it to do. here are the > lines of code that i am currently trying: > > SET(MY_FILES FirstJavaFile SecondJavaFile) > SET(CLASS_FILES "") > SET(JAVA_FILES "") > FOREACH(f ${MY_FILES}) > SET(CLASS_FILES "${CLASS_FILES} > ${PROJECT_BINARY_DIR}/${CLASS_DIR}/${f}.class") > SET(JAVA_FILES "${JAVA_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/${f}.java") > ENDFOREACH(f JAVA_FILES) > message("Java files: \"${JAVA_FILES}\"") > message("Class files: \"${CLASS_FILES}\"") > > # compile all .java files with javac to .class > ADD_CUSTOM_COMMAND( > OUTPUT ${CLASS_FILES} > DEPENDS ${JAVA_FILES} > COMMAND ${CMAKE_Java_COMPILER} ARGS -d ${PROJECT_BINARY_DIR}/${CLASS_DIR} > ${CMAKE_CURRENT_SOURCE_DIR}/*.java > ) > > > From my understanding of what add_custom_command should be doing, this should > compile FIrstJavaFile.java and SecondJavaFile.java to class files, if they > have been changed. but it does nothing. > > i am thankful for any tip. > > regards, > keyan > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake