From 0e9245edfa91160671f06314e66b38ed6e902983 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Fri, 18 Aug 2017 12:10:26 +0100 Subject: [PATCH] MacOSX --with-adobe link issue. Documentation update. --- WORK-IN-PROGRESS | 181 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) diff --git a/WORK-IN-PROGRESS b/WORK-IN-PROGRESS index 2f33eee1..00db467a 100644 --- a/WORK-IN-PROGRESS +++ b/WORK-IN-PROGRESS @@ -1,4 +1,71 @@ +Manually building XMPsdk and Samples with the ./Generate_XXX_mac.sh scripts +--------------------------------------------------------------------------- +Added : 2017-08-18 +Modified: 2017-08-18 + +$ cd /xmpsdk +# XMP-Toolkit-SDK-CC201607 or XMP-Toolkit-SDK-CC201407 +$ mkdir Adobe +$ curl -O http://download.macromedia.com/pub/developer/xmp/sdk/XMP-Toolkit-SDK-CC201607.zip + +$ find third-party -type d -maxdepth 1 -exec cp -R '{}' Adobe/XMP-Toolkit-SDK-CC201607/third-party ';' + +$ cd XMP-Toolkit-SDK-CC201607/build +$ echo '3' | ./GenerateXMPToolkitSDK_mac.sh + +xcodebuild -project xcode/static/intel_64/XMPToolkitSDK64.xcodeproj/ -target XMPCoreStatic -configuration Release +xcodebuild -project xcode/static/intel_64/XMPToolkitSDK64.xcodeproj/ -target XMPFilesStatic -configuration Release + +Building Samples: +$ cd Adobe +$ curl --insecure -O https://cmake.org/files/v3.5/cmake-3.5.2-Darwin-x86_64.tar.gz +$ tar xzf cmake-3.5.2-Darwin-x86_64.tar.gz +$ mkdir XMP-Toolkit-SDK-CC201607/tools/cmake/bin +$ ditto cmake-3.5.2-Darwin-x86_64/CMake.app/ XMP-Toolkit-SDK-CC201607/tools/cmake/bin/cmake.app +$ cd XMP-Toolkit-SDK-CC201607/samples/build +$ echo '2' | ./GenerateSamples_mac.sh +$ xcodebuild -project xcode/intel_64/XMP_Samples_64.xcodeproj -configuration Release [-target Sample] +$ cd XMP-Toolkit-SDK-CC201607 +$ samples/target/macintosh/intel_64/Release/DumpFile ~/Stonehenge.jpg + +Samples: +CustomSchema +CustomSchemaNewDOM +DumpFile +DumpMainXMP +DumpScannedXMP +ModifyingXMP +ModifyingXMPNewDOM +ReadingXMP +ReadingXMPNewDOM +XMPCommand +XMPCoreCoverage +XMPFilesCoverage +XMPIterations + +Amazing Discovery 1 DumpFile is linked to libstdc++.6.dylib +------------------------------------------------------------ + +XMP-Toolkit-SDK-CC201607/samples $ otool -L target/macintosh/intel_64/Release/DumpFile +target/macintosh/intel_64/Release/DumpFile: + /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 22.0.0) + /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0) + /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1) + /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 728.4.0) +XMP-Toolkit-SDK-CC201607/samples $ + +Conclusion: We should not link -lXMPCore with libexiv2.26.dylib + We should link -lXMPCore with applications such as exiv2(.exe) + We should build exiv2 code with visibility disabled "CXXFLAGS=-fvisibility=hidden -fvisibility-inlines-hidden" + We must compile/link apps with "CXXFLAGS=-stdlib=libstdc++ -Wno-deprecated" + +Amazing Discovery 2 millions of "weak symbol/visibility" messages +----------------------------------------------------------------- + +$ cd samples/build +$ rm -rf cmake/DumpFile/build_x64 # remove the build of DumpFile +$ env VERBOSE=1 xcodebuild -project xcode/intel_64/XMP_Samples_64.xcodeproj -configuration Release -target DumpFile Puzzle with autotools/--with-adobe MacOS-X Only ----------------------------------------------- @@ -171,3 +238,117 @@ For sure, Adobe's code is being built with MacOSX10.8.sdk and -std=c++11 -c /Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/XMPCore/source/XMPMeta-GetSet.cpp +Compiler options used to build DumpFile sample Application +----------------------------------------------------------- + +clang -x c++ +-arch x86_64 +-fmessage-length=0 +-fdiagnostics-show-note-include-stack +-fmacro-backtrace-limit=0 +-stdlib=libstdc++ +-Wno-trigraphs +-fpascal-strings +-O3 +-Wno-missing-field-initializers +-Wno-missing-prototypes +-Wno-return-type +-Wno-non-virtual-dtor +-Wno-overloaded-virtual +-Wno-exit-time-destructors +-Wno-missing-braces +-Wparentheses +-Wswitch +-Wno-unused-function +-Wno-unused-label +-Wno-unused-parameter +-Wno-unused-variable +-Wunused-value +-Wno-empty-body +-Wno-uninitialized +-Wno-unknown-pragmas +-Wno-shadow +-Wno-four-char-constants +-Wno-conversion +-Wno-constant-conversion +-Wno-int-conversion +-Wno-bool-conversion +-Wno-enum-conversion +-Wno-shorten-64-to-32 +-Wno-newline-eof +-Wno-c++11-extensions +-DCMAKE_INTDIR=\"Release\" +-DMAC_ENV=1 +-DXMP_64=1 +-DXMP_StaticBuild=1 +-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk +-fasm-blocks +-fstrict-aliasing +-Wdeprecated-declarations +-Winvalid-offsetof +-mmacosx-version-min=10.9 +-g +-Wno-sign-conversion +-Wno-infinite-recursion +-Wno-move +-I/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/target/macintosh/intel_64/Release/include +-I/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/../../.. +-I/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/../../../public/include +-I/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/DumpFile/build_x64/XMP_Samples_64.build/Release/DumpFile.build/DerivedSources/x86_64 +-I/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/DumpFile/build_x64/XMP_Samples_64.build/Release/DumpFile.build/DerivedSources +-Wmost +-Wno-four-char-constants +-Wno-unknown-pragmas +-F/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/target/macintosh/intel_64/Release +-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks +-funsigned-char +-fshort-enums +-fno-common +-Wall +-Wextra +-Wno-missing-field-initializers +-Wno-shadow +-Wno-reorder +-std=c++11 +-Wnon-virtual-dtor +-Woverloaded-virtual +-Wno-unused-variable +-Wno-unused-function +-Wno-unused-parameter +-fstack-protector +-DNDEBUG=1 +-D_NDEBUG=1 +-MMD +-MT dependencies +-MF /Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/DumpFile/build_x64/XMP_Samples_64.build/Release/DumpFile.build/Objects-normal/x86_64/DumpFile.d +--serialize-diagnostics /Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/DumpFile/build_x64/XMP_Samples_64.build/Release/DumpFile.build/Objects-normal/x86_64/DumpFile.dia +-c /Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/source/common/DumpFile.cpp +-o /Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/DumpFile/build_x64/XMP_Samples_64.build/Release/DumpFile.build/Objects-normal/x86_64/DumpFile.o + +Linker Options used to link DumpFile +------------------------------------ + +/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ +-arch x86_64 +-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk +-L/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/target/macintosh/intel_64/Release +-F/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/target/macintosh/intel_64/Release +-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks +-filelist /Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/DumpFile/build_x64/XMP_Samples_64.build/Release/DumpFile.build/Objects-normal/x86_64/DumpFile.LinkFileList +-mmacosx-version-min=10.9 +-Xlinker +-object_path_lto +-Xlinker +/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/DumpFile/build_x64/XMP_Samples_64.build/Release/DumpFile.build/Objects-normal/x86_64/DumpFile_lto.o +-stdlib=libstdc++ +-Wl,-search_paths_first +-Wl,-headerpad_max_install_names +/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/../../../public/libraries/macintosh/intel_64/Release/libXMPCoreStatic.a +/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/../../../public/libraries/macintosh/intel_64/Release/libXMPFilesStatic.a +-framework Cocoa +-Xlinker +-dependency_info +-Xlinker +/Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/build/cmake/DumpFile/build_x64/XMP_Samples_64.build/Release/DumpFile.build/Objects-normal/x86_64/DumpFile_dependency_info.dat +-o /Users/rmills/gnu/github/exiv2/xmpsdk/Adobe/XMP-Toolkit-SDK-CC201607/samples/target/macintosh/intel_64/Release/DumpFile +