summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphael Kubo da Costa <rakuco@FreeBSD.org>2016-03-09 15:14:35 +0000
committerRaphael Kubo da Costa <rakuco@FreeBSD.org>2016-03-09 15:14:35 +0000
commit87c262ff1c441cfa2a95a32e61a58187501eab3b (patch)
tree4aa6980891cb01a549473c14590f1fa152707a05
parentCorrectly mark the port as unmaintained after r392689. (diff)
x11-toolkits/attica: Change the location where we install its headers.
In preparation for the upcoming KDE Frameworks 5 and Plasma 5 ports, install attica's headers into include/attica/attica instead of include/attica. Users of attica reference the headers in the code with #include <attica/foo.h> which means the compiler is passed -I${LOCALBASE}/include for the headers to be found. The KDE Frameworks 5 version of attica installs the headers into include/KF5/attica, so depending on the other of the arguments the compiler can end up being passed -I${LOCALBASE}/include -I${LOCALBASE}/include/KF5 leading to the wrong attica headers being used instead. By changing the header location, we make sure one passes -I${LOCALBASE}/include/attica to use the attica 0.4.2 headers. The original idea and code came from Tobias Berner <tcberner@gmail.com>, with further improvements from myself. While here, add some comments explaining why some sed calls are made in the post-patch target. Last but not least, audio/tomahawk had to be patched for the attica headers to be properly found now that they are no longer in ${LOCALBASE}/include. The patch itself contains a larger explanation of what had to be done. All other ports depending on x11-toolkits/attica work fine without any changes. Submitted by: Tobias Berner <tcberner@gmail.com> (original version)
Notes
Notes: svn path=/head/; revision=410702
-rw-r--r--audio/tomahawk/files/patch-src_libtomahawk_CMakeLists.txt21
-rw-r--r--x11-toolkits/attica/Makefile14
-rw-r--r--x11-toolkits/attica/pkg-plist86
3 files changed, 78 insertions, 43 deletions
diff --git a/audio/tomahawk/files/patch-src_libtomahawk_CMakeLists.txt b/audio/tomahawk/files/patch-src_libtomahawk_CMakeLists.txt
new file mode 100644
index 000000000000..56b639f17852
--- /dev/null
+++ b/audio/tomahawk/files/patch-src_libtomahawk_CMakeLists.txt
@@ -0,0 +1,21 @@
+Make sure targets depending on tomahawklib also include LIBATTICA_INCLUDE_DIR.
+
+If x11-toolkits/attica is not installed in a location such as
+${LOCALBASE}/include, we risk breaking the build like this:
+
+ In file included from /wrkdirs/usr/ports/audio/tomahawk/work/tomahawk-0.8.4/src/infoplugins/generic/charts/ChartsPlugin.cpp:29:
+ In file included from /wrkdirs/usr/ports/audio/tomahawk/work/tomahawk-0.8.4/src/libtomahawk/TomahawkSettings.h:28:
+ /wrkdirs/usr/ports/audio/tomahawk/work/tomahawk-0.8.4/src/libtomahawk/AtticaManager.h:30:10: fatal error: 'attica/provider.h' file not found
+ #include <attica/provider.h>
+--- src/libtomahawk/CMakeLists.txt.orig 2015-04-15 04:41:40 UTC
++++ src/libtomahawk/CMakeLists.txt
+@@ -488,6 +488,9 @@ set_target_properties(
+ OUTPUT_NAME "tomahawk"
+ )
+
++if(LIBATTICA_FOUND)
++ TARGET_INCLUDE_DIRECTORIES(tomahawklib INTERFACE ${LIBATTICA_INCLUDE_DIR})
++endif(LIBATTICA_FOUND)
+
+ qt5_use_modules(tomahawklib Widgets Network Sql WebKitWidgets Concurrent Xml UiTools Svg)
+
diff --git a/x11-toolkits/attica/Makefile b/x11-toolkits/attica/Makefile
index f4ae21d20bb6..3f9bdd714dd1 100644
--- a/x11-toolkits/attica/Makefile
+++ b/x11-toolkits/attica/Makefile
@@ -3,6 +3,7 @@
PORTNAME= attica
PORTVERSION= 0.4.2
+PORTREVISION= 1
PORTEPOCH= 2
CATEGORIES= x11-toolkits
MASTER_SITES= KDE/stable/${PORTNAME}
@@ -18,9 +19,22 @@ CMAKE_ARGS= -DATTICA_ENABLE_TESTS:BOOL=OFF \
-DQT4_BUILD:BOOL=ON
post-patch:
+# LIB_DESTINATION is not caught by USES=pathfix.
${REINPLACE_CMD} \
-e 's,$${LIB_DESTINATION}/pkgconfig,libdata/pkgconfig,' \
+ ${WRKSRC}/lib/CMakeLists.txt
+# By default attica will produce libattica.0.4.so but not libattica.0.so.
+ ${REINPLACE_CMD} \
-e 's,.$${CMAKE_LIBATTICA_VERSION_MINOR},,' \
${WRKSRC}/lib/CMakeLists.txt
+# Install headers into a subdirectory of ${LOCALBASE}/include so that passing
+# -I${LOCALBASE}/include does not cause it to be preferred over the KF5 version
+# installed into ${LOCALBASE}/include/KF5.
+ ${REINPLACE_CMD} \
+ -e "s,include/attica,include/attica/attica," \
+ ${WRKSRC}/lib/CMakeLists.txt
+ ${REINPLACE_CMD} \
+ -e "s,/include,/include/attica," \
+ ${WRKSRC}/lib/cmake/libattica.pc.cmake
.include <bsd.port.mk>
diff --git a/x11-toolkits/attica/pkg-plist b/x11-toolkits/attica/pkg-plist
index dc6a0298e6dd..e0a1029c8da7 100644
--- a/x11-toolkits/attica/pkg-plist
+++ b/x11-toolkits/attica/pkg-plist
@@ -1,46 +1,46 @@
-include/attica/accountbalance.h
-include/attica/achievement.h
-include/attica/activity.h
-include/attica/atticabasejob.h
-include/attica/atticaclient_export.h
-include/attica/atticautils.h
-include/attica/buildservice.h
-include/attica/buildservicejob.h
-include/attica/buildservicejoboutput.h
-include/attica/category.h
-include/attica/comment.h
-include/attica/content.h
-include/attica/deletejob.h
-include/attica/distribution.h
-include/attica/downloaddescription.h
-include/attica/downloaditem.h
-include/attica/event.h
-include/attica/folder.h
-include/attica/forum.h
-include/attica/getjob.h
-include/attica/homepageentry.h
-include/attica/homepagetype.h
-include/attica/icon.h
-include/attica/itemjob.h
-include/attica/knowledgebaseentry.h
-include/attica/license.h
-include/attica/listjob.h
-include/attica/message.h
-include/attica/metadata.h
-include/attica/person.h
-include/attica/platformdependent.h
-include/attica/platformdependent_v2.h
-include/attica/postjob.h
-include/attica/privatedata.h
-include/attica/project.h
-include/attica/provider.h
-include/attica/providermanager.h
-include/attica/publisher.h
-include/attica/publisherfield.h
-include/attica/putjob.h
-include/attica/remoteaccount.h
-include/attica/topic.h
-include/attica/version.h
+include/attica/attica/accountbalance.h
+include/attica/attica/achievement.h
+include/attica/attica/activity.h
+include/attica/attica/atticabasejob.h
+include/attica/attica/atticaclient_export.h
+include/attica/attica/atticautils.h
+include/attica/attica/buildservice.h
+include/attica/attica/buildservicejob.h
+include/attica/attica/buildservicejoboutput.h
+include/attica/attica/category.h
+include/attica/attica/comment.h
+include/attica/attica/content.h
+include/attica/attica/deletejob.h
+include/attica/attica/distribution.h
+include/attica/attica/downloaddescription.h
+include/attica/attica/downloaditem.h
+include/attica/attica/event.h
+include/attica/attica/folder.h
+include/attica/attica/forum.h
+include/attica/attica/getjob.h
+include/attica/attica/homepageentry.h
+include/attica/attica/homepagetype.h
+include/attica/attica/icon.h
+include/attica/attica/itemjob.h
+include/attica/attica/knowledgebaseentry.h
+include/attica/attica/license.h
+include/attica/attica/listjob.h
+include/attica/attica/message.h
+include/attica/attica/metadata.h
+include/attica/attica/person.h
+include/attica/attica/platformdependent.h
+include/attica/attica/platformdependent_v2.h
+include/attica/attica/postjob.h
+include/attica/attica/privatedata.h
+include/attica/attica/project.h
+include/attica/attica/provider.h
+include/attica/attica/providermanager.h
+include/attica/attica/publisher.h
+include/attica/attica/publisherfield.h
+include/attica/attica/putjob.h
+include/attica/attica/remoteaccount.h
+include/attica/attica/topic.h
+include/attica/attica/version.h
lib/libattica.so
lib/libattica.so.0
lib/libattica.so.0.4.2