> On Jan. 17, 2015, 11:49 p.m., Friedrich W. H. Kossebau wrote: > > cmake/modules/FindOpenJPEG.cmake, line 14 > > <https://git.reviewboard.kde.org/r/122114/diff/1/?file=342456#file342456line14> > > > > Hm, these // things at least need a comment, because this strange path > > will surprise any clueless reader of the code. > > > > But then I wonder if this is a standard approach to this problem. > > Adding a hack like this just for MacPorts opens the can for all distris to > > add hacks for some custom solutions. > > > > I propose we first look for a more cmake/usual solution for the problem > > of supporting non-standard installation paths of used libs. > > René J.V. Bertin wrote: > I agree that this change is a weird one to propose "upstream" (i.e. > here), and almost excluded it. > Yes, it's a standard approach for MacPorts to use a patch file to insert > a placeholder into files, that is replaced with the actual prefix path later > on. It's my version of that approach to use a placeholder that evaluates to > the default prefix path under standard path normalisation rules. > > Looking at the issue again, I realise that another approach is possible > too here: using a variable that is already available to cmake. > > This is the cmake invocation is it current is generated through my > Portfile; ${CMAKE_INSTALL_PREFIX} would be the obvious choice (i.e. > //opt//local//include/openjpeg-1.5 would become something like > ${CMAKE_INSTALL_PREFIX}/include/openjpeg-1.5?) : > > `cmake -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_VERBOSE_MAKEFILE=ON > -DCMAKE_COLOR_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release > -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_INSTALL_RPATH=${prefix}/lib > -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib > -DCMAKE_SYSTEM_PREFIX_PATH="${prefix};/usr" -DCMAKE_FIND_FRAMEWORK=LAST > -Wno-dev > -DCMAKE_MODULE_PATH="${prefix}/share/cmake/Modules;${prefix}/share/cmake/Modules" > -DBUILD_SHARED_LIBS=ON -DBUNDLE_INSTALL_DIR=/Applications/MacPorts/KDE4 > -DKDE_DISTRIBUTION_TEXT="MacPorts/Mac OS X" > -DQT_QT_INCLUDE_DIR=${prefix}/include/qt4 -DQT_QMAKESPEC=macx-g++ > -DQT_ZLIB_LIBRARY=${prefix}/lib/libz.dylib > -DQT_PNG_LIBRARY=${prefix}/lib/libpng.dylib > -DDOCBOOKXSL_DIR=${prefix}/share/xsl/docbook-xsl > -DGETTEXT_INCLUDE_DIR=${prefix}/include > -DGETTEXT_LIBRARY=${prefix}/lib/libgettextlib.dylib > -DGIF_INCLUDE_DIR=${prefix}/include -DGIF_LIBRARY=${prefix}/lib/libgif.dylib > -DJASPER_INCLUDE_DIR=${prefix}/include > -DJASPER_LIBRARY=${prefix}/lib/libjasper.dylib -DJPEG_INCLUD E_DIR=${prefix}/include -DJPEG_LIBRARY=${prefix}/lib/libjpeg.dylib -DLBER_LIBRARIES=${prefix}/lib/liblber.dylib -DLDAP_INCLUDE_DIR=${prefix}/include -DLDAP_LIBRARIES=${prefix}/lib/libldap.dylib -DLIBEXSLT_INCLUDE_DIR=${prefix}/include -DLIBEXSLT_LIBRARIES=${prefix}/lib/libexslt.dylib -DLIBICALSS_LIBRARY=${prefix}/lib/libicalss.dylib -DLIBICAL_INCLUDE_DIRS=${prefix}/include -DLIBICAL_LIBRARY=${prefix}/lib/libical.dylib -DLIBINTL_INCLUDE_DIR=${prefix}/include -DLIBINTL_LIBRARY=${prefix}/lib/libintl.dylib -DLIBXML2_INCLUDE_DIR=${prefix}/include/libxml2 -DLIBXML2_LIBRARIES=${prefix}/lib/libxml2.dylib -DLIBXML2_XMLLINT_EXECUTABLE=${prefix}/bin/xmllint -DLIBXSLT_INCLUDE_DIR=${prefix}/include -DLIBXSLT_LIBRARIES=${prefix}/lib/libxslt.dylib -DMYSQLD_EXECUTABLE=${prefix}/libexec/mysqld -DMYSQL_INCLUDE_DIR=${prefix}/include/mysql5/mysql -DMYSQL_LIB_DIR=${prefix}/lib/mysql5/mysql -DMYSQLCONFIG_EXECUTABLE=${prefix}/bin/mysql_config5 -DOPENAL_INCLUDE_DIR=/System/Library/Frameworks/OpenAL .framework/Headers -DOPENAL_LIBRARY=/System/Library/Frameworks/OpenAL.framework -DPNG_INCLUDE_DIR=${prefix}/include -DPNG_PNG_INCLUDE_DIR=${prefix}/include -DPNG_LIBRARY=${prefix}/lib/libpng.dylib -DTIFF_INCLUDE_DIR=${prefix}/include -DTIFF_LIBRARY=${prefix}/lib/libtiff.dylib -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -DCMAKE_STRIP:FILEPATH=/bin/echo -DPhonon_DIR=${prefix}/share/cmake/modules/phonon -DICONV_INCLUDE_DIR=${prefix}/include -DICONV_LIBRARIES=${prefix}/lib/libiconv.dylib -DFreeTDS_INCLUDE_DIR=${prefix}/include/freetds -DFreeTDS_LIBRARIES=${prefix}/lib/libsybdb.dylib -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.9" -DCMAKE_OSX_SYSROOT="/" ../${worksrcpath}` > > Friedrich W. H. Kossebau wrote: > CMAKE_INSTALL_PREFIX might not be the best solution when trying to follow > cmake's philosophy, as this var is only about to which prefix the current > software should be installed. > Looking into > http://www.cmake.org/cmake/help/v2.8.12/cmake.html#command:find_path and > other Find*.cmake macros it seems that making use of > `CMAKE_SYSTEM_PREFIX_PATH` (and/or `ENV Project_ROOT`) might be closer to the > cmake ideas. Some search hits seemed to hint that cmake already supports > MacPorts & Fink, so the extra paths should already be added to > `CMAKE_SYSTEM_PREFIX_PATH`. > > Please check by adding some `message(STATUS "Content of > CMAKE_SYSTEM_PREFIX_PATH: ${CMAKE_SYSTEM_PREFIX_PATH}")` and see if whatever > special parts are part already (seems that CMAKE_INSTALL_PREFIX is also added > there, so might be duplicated). Oh, I just see in your cmake invocation > snippet that `-DCMAKE_SYSTEM_PREFIX_PATH="${prefix};/usr"` is passed. No idea > how that is generated, but whereever it is might be the correct place to > control the extra root vars (which might be prefix in all cases) where > MacPorts specific stuff should be found. > > So could you please try if these find commands work for you? > > FindOpenJPEG.cmake: > ``` > FIND_PATH(OPENJPEG_INCLUDE_DIR openjpeg.h > PATHS > /usr/local/include/openjpeg > /usr/local/include > /usr/include/openjpeg > /usr/include/openjpeg-1.5 > /usr/include > PATH_SUFFIXES > openjpeg-1.5 > openjpeg > ) > ``` > (not touching the list in PATHS, even if possible half could be dropped) > > FindPqxx.cmake: > ``` > find_path(PQXX_INCLUDE_DIR pqxx > PATHS > # ENV PQXX_ROOT perhaps as well? > /usr/include/pqxx > /usr/local/include/pqxx > PATH_SUFFIXES > pqxx > ) > ``` > > FindVc.cmake: > ``` > find_package(Vc ${Vc_FIND_VERSION} QUIET NO_MODULE PATHS $ENV{HOME} > /opt/Vc PATH_SUFFIXES Vc) > ``` > > René J.V. Bertin wrote: > > message(STATUS "Content of CMAKE_SYSTEM_PREFIX_PATH: > ${CMAKE_SYSTEM_PREFIX_PATH}") > prints: > ``` > Content of CMAKE_SYSTEM_PREFIX_PATH: > /opt/local;/usr;/usr/local;/usr;/;/Volumes/Debian/MP9;/opt/local;//usr;/sw;/opt/local > ``` > > /Volumes/Debian/MP9 is the target of the symlink /opt/local on my system; > /sw is where Fink would be installed (not present on my system). > > Your modification to FindOpenJPEG.cmake works, I've dropped trying to > build with pqxx (and its dependencies) for now so I can only assume that the > same mod should work there too. > > Friedrich W. H. Kossebau wrote: > Ah, good if it works. So we can support MacPorts with cleaner code :) > Want me to create a separate review request while your build is down? > > René J.V. Bertin wrote: > What would be the point of a separate RR? > > Friedrich W. H. Kossebau wrote: > That was just to speed things up in case your build problems persists for > more than a week or longer :) > Hm, the updated patch is not the final version, or should it?
See the issues I opened myself, but apart from them, it's up to you to decide, no? - René J.V. ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/122114/#review74205 ----------------------------------------------------------- On Jan. 20, 2015, 8:42 p.m., René J.V. Bertin wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/122114/ > ----------------------------------------------------------- > > (Updated Jan. 20, 2015, 8:42 p.m.) > > > Review request for Calligra and KDE Software on Mac OS X. > > > Repository: calligra > > > Description > ------- > > This patch adapts the build system to OS X with KDE4, Qt4 and other > dependencies installed through MacPorts. > > In order of appearance in the patch file: > - `-DQT_EXCEPTIONS`: this is for use with Qt built with its -no-exceptions > option, which MacPorts provides as an optional variant. > - Newer OS X variants only provide the clang compiler > - The default install location for MacPorts is `/opt/local`, but this can be > changed by the user. The header and library search paths required for > OpenJPEG, libpqxx and OpenVC are added using `//opt//local//` which is of > course equivalent to `/opt/local` but easier to search-and-replace with the > true install location in MacPorts' post-patch stage. > - the product set for OS X has been extended to all applications and features > that build and make sense. (Calligra Gemini builds, but does not function > properly.) > > A "Portfile" and accompanying patches that don't have the vocation to be > included "upstream" in calligra will be uploaded to MacPorts' trac system > soon. > > > Diffs > ----- > > CMakeLists.txt facb5f9 > cmake/modules/FindOpenJPEG.cmake 6bfd93c > cmake/modules/FindPqxx.cmake 3e24a0c > cmake/modules/FindVc.cmake bb9823f > cmake/productsets/osx.cmake 1fe8f1c > > Diff: https://git.reviewboard.kde.org/r/122114/diff/ > > > Testing > ------- > > On OS X 10.9.5 with kdelibs 4.14.4 and Qt 4.8.6 installed through MacPorts. > > > Thanks, > > René J.V. Bertin > >
_______________________________________________ calligra-devel mailing list calligra-devel@kde.org https://mail.kde.org/mailman/listinfo/calligra-devel