MantisBT - CMake | |||||
View Issue Details | |||||
ID | Project | Category | View Status | Date Submitted | Last Update |
0004605 | CMake | CMake | public | 2007-03-15 11:38 | 2007-05-24 17:39 |
Reporter | Sean McBride | ||||
Assigned To | Bill Hoffman | ||||
Priority | urgent | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | OS | OS Version | |||
Product Version | |||||
Target Version | Fixed in Version | ||||
Summary | 0004605: CMake sometimes uses JavaEmbedding.framework, but should never | ||||
Description | Two of my VTK dashboards are failing: http://www.vtk.org/Testing/Sites/RogueResearchi386/MacOSXTiger-i386-carbon/20070314-0300-Nightly/BuildError.html [^] http://www.vtk.org/Testing/Sites/RogueResearchPPC/MacOSXTiger-ppc-carbon/20070314-0300-Nightly/BuildError.html [^] Both are running 10.4.9, one is PPC one is Intel. Both are using CMake from CVS of 2007-03-15. The problem is JavaEmbedding.framework. This framework is deprecated and basically should never be used. On a 10.4 system the framework still exists, but is ppc only: lipo -info /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/JavaEmbedding.framework/Versions/A/JavaEmbedding reports: Non-fat file: /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/JavaEmbedding.framework/Versions/A/JavaEmbedding is architecture: ppc Apple has said it will never be Intel native. Thus no intel build can ever link against it. Now I'm not a java expert by any stretch, but my understanding (mostly thanks to David Cole and others on the VTK list) is as follows... The bug is probably in CMake's FindJNI.cmake or FindJava.cmake. It should never be picking "-framework JavaEmbedding", but sometimes it still does. The thing that finds it and sets it into the JAVA_AWT_INCLUDE_PATH is a search for the header file "jawt.h" -- if that header file is there, then it sets the include path variable, but it does not set JAVA_AWT_LIBRARY. So everything compiles fine, but then there's nothing to link to. Where is the jawt.h header? find /Developer/SDKs/MacOSX10.4u.sdk -name jawt.h reports: /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/JavaEmbedding.framework/Versions/A/Headers/jawt.h /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Headers/jawt.h /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Headers/jawt.h /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jawt.h find /Developer/SDKs/MacOSX10.3.9.sdk -name jawt.h reports: /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/JavaEmbedding.framework/Versions/A/Headers/jawt.h /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Headers/jawt.h /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jawt.h So perhaps it is a simple as CMake needing to hardcode an exception to never use the one in JavaEmbedding.framework. | ||||
Steps To Reproduce | |||||
Additional Information | |||||
Tags | No tags attached. | ||||
Relationships | |||||
Attached Files | FindJNI.cmake (5,065) 1969-12-31 19:00 https://public.kitware.com/Bug/file/966/FindJNI.cmake | ||||
Issue History | |||||
Date Modified | Username | Field | Change |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|