[CMake] CMAKE_Java_LINK_EXECUTABLE

Richard Fuchs fuchsrich at se-core.net
Wed Aug 2 09:53:01 EDT 2006


Brad King wrote:
> Richard Fuchs wrote:
>   
>> After hunting through CMakeJavaInformation.cmake, it doesn't seem to
>> have a CMAKE_Java_LINK_EXECUTABLE target/property (or whatever the
>> correct name for it is).  Does this mean that you can't call
>> ADD_EXECUTABLE with java files and I need to use ADD_LIBRARY or
>> something? CMakeLists.txt files below.
>>     
> [snip]
>   
>> # Compile the data model class generator
>> ADD_EXECUTABLE(./bin/dm_class_generator ${DATA_MODEL_CLASS_GENERATOR_SRCS})
>>     
>
> Don't java programs have to be run using "java myprog"?  CMake has no
> notion of a java executable.  Try ADD_LIBRARY to create a jar.
>
> -Brad
>
>   
So why when I have a simple CMakeLists.txt file like below am I getting 
this error?  Why is it trying to put the .class files in some funky 
directory instead of just where the .java files are?  Is there a way to 
set the OBJECT_DIR that's in the CMakeJavaInformation.cmake file?

Thanks

# Compile the OOS RDM to .xsd generator
SET(RDM_TO_XSD_GENERATOR_SRCS Declaration.java EmptyDataModelClass.java 
DataModelClass.java DataModelStructure.java GenerateVSADataModel.java 
JarfileClassLoader.java XSDSchema.java)

INCLUDE_DIRECTORIES(${SECORE_SOURCE_DIR}/common/vsa_data_model/rdm_to_xsd_generator)
# Compile the OOS RDM to .xsd generator
SET(RDM_TO_XSD_GENERATOR_SRCS Declaration.java EmptyDataModelClass.java 
DataModelClass.java DataModelStructure.java GenerateVSADataModel.java 
JarfileClassLoader.java XSDSchema.java)

INCLUDE_DIRECTORIES(${SECORE_SOURCE_DIR}/common/vsa_data_model/rdm_to_xsd_generator)

SET(RDM_OUTPUT_DIR 
${SECORE_SOURCE_DIR}/common/vsa_data_model/rdm_to_xsd_generator)

# Compile the data model class generator
ADD_LIBRARY(rdm_to_xsd_generator ${RDM_TO_XSD_GENERATOR_SRCS}
SET(RDM_OUTPUT_DIR 
${SECORE_SOURCE_DIR}/common/vsa_data_model/rdm_to_xsd_generator)

# Compile the data model class generator
ADD_LIBRARY(rdm_to_xsd_generator ${RDM_TO_XSD_GENERATOR_SRCS}

[fuchsrich at cde048 secore]$ make
/usr/local/cmake/bin/cmake -H/work/secore-dev/secore 
-B/work/secore-dev/secore --check-build-system CMakeFiles/Makefile.cmake 0
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory `/work/secore-dev/secore'
make -f 
common/vsa_data_model/rdm_to_xsd_generator/CMakeFiles/rdm_to_xsd_generator.dir/build.make 
common/vsa_data_model/rdm_to_xsd_generator/CMakeFiles/rdm_to_xsd_generator.dir/depend
make[2]: Entering directory `/work/secore-dev/secore'
Scanning dependencies of target rdm_to_xsd_generator
cd /work/secore-dev/secore && /usr/local/cmake/bin/cmake -E 
cmake_depends  "Unix Makefiles" /work/secore-dev/secore 
/work/secore-dev/secore/common/vsa_data_model/rdm_to_xsd_generator 
/work/secore-dev/secore/common/vsa_data_model/rdm_to_xsd_generator/CMakeFiles/rdm_to_xsd_generator.dir/DependInfo.cmake
make[2]: Leaving directory `/work/secore-dev/secore'
make -f 
common/vsa_data_model/rdm_to_xsd_generator/CMakeFiles/rdm_to_xsd_generator.dir/build.make 
common/vsa_data_model/rdm_to_xsd_generator/CMakeFiles/rdm_to_xsd_generator.dir/build
make[2]: Entering directory `/work/secore-dev/secore'
Building Java object 
common/vsa_data_model/rdm_to_xsd_generator/CMakeFiles/rdm_to_xsd_generator.dir/Declaration.class
/usr/local/bin/javac    -classpath 
/work/secore-dev/secore/common/vsa_data_model/rdm_to_xsd_generator   
/work/secore-dev/secore/common/vsa_data_model/rdm_to_xsd_generator/Declaration.java 
-d CMakeFiles/rdm_to_xsd_generator.dir
/work/secore-dev/secore/common/vsa_data_model/rdm_to_xsd_generator/Declaration.java:3: 
error while writing VSADataModelGenerator.Declaration: 
CMakeFiles/rdm_to_xsd_generator.dir/VSADataModelGenerator/Declaration.class 
(No such file or directory)
public class Declaration {
       ^
1 error
make[2]: *** 
[common/vsa_data_model/rdm_to_xsd_generator/CMakeFiles/rdm_to_xsd_generator.dir/Declaration.class] 
Error 1
make[2]: Leaving directory `/work/secore-dev/secore'
make[1]: *** 
[common/vsa_data_model/rdm_to_xsd_generator/CMakeFiles/rdm_to_xsd_generator.dir/all] 
Error 2
make[1]: Leaving directory `/work/secore-dev/secore'
make: *** [all] Error 2



More information about the CMake mailing list