summaryrefslogtreecommitdiffstats
path: root/kioslave/fish
diff options
context:
space:
mode:
authorsamelian <samelian@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-01-23 23:42:11 +0000
committersamelian <samelian@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-01-23 23:42:11 +0000
commitb6fc43ccd522dfbc1e215b12adb8208c156bbd31 (patch)
treeb6d14378dd6c3d2f74ea8acf515cef7f4a024cb2 /kioslave/fish
parentd53bf360906757a36588588fb0286d3b4784ffcb (diff)
downloadtdebase-b6fc43ccd522dfbc1e215b12adb8208c156bbd31.tar.gz
tdebase-b6fc43ccd522dfbc1e215b12adb8208c156bbd31.zip
[kdebase] initial cmake support
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1216551 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kioslave/fish')
-rw-r--r--kioslave/fish/CMakeLists.txt45
-rw-r--r--kioslave/fish/ConfigureChecks.cmake32
-rw-r--r--kioslave/fish/genfishcode.cmake8
-rwxr-xr-xkioslave/fish/genfishcode.pl43
4 files changed, 128 insertions, 0 deletions
diff --git a/kioslave/fish/CMakeLists.txt b/kioslave/fish/CMakeLists.txt
new file mode 100644
index 000000000..77049ce8b
--- /dev/null
+++ b/kioslave/fish/CMakeLists.txt
@@ -0,0 +1,45 @@
+#################################################
+#
+# (C) 2010-2011 Serghei Amelian
+# serghei (DOT) amelian (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include( ConfigureChecks.cmake )
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
+
+
+##### other data ################################
+
+install( FILES fish.protocol nxfish.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
+
+
+##### kio_fish (module) #########################
+
+add_custom_command( OUTPUT fishcode.h
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/genfishcode.pl ${CMAKE_CURRENT_SOURCE_DIR}/fish.pl > fishcode.h
+ DEPENDS fish.pl )
+
+set_property( SOURCE fish.cpp APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/fishcode.h )
+
+set( target kio_fish )
+
+tde_add_kpart( ${target} AUTOMOC
+ SOURCES fish.cpp
+ LINK kio-shared util
+ DESTINATION ${PLUGIN_INSTALL_DIR}
+)
diff --git a/kioslave/fish/ConfigureChecks.cmake b/kioslave/fish/ConfigureChecks.cmake
new file mode 100644
index 000000000..46ea1c181
--- /dev/null
+++ b/kioslave/fish/ConfigureChecks.cmake
@@ -0,0 +1,32 @@
+#################################################
+#
+# (C) 2010-2011 Serghei Amelian
+# serghei (DOT) amelian (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+check_include_file( stropts.h HAVE_STROPTS )
+check_include_file( libutil.h HAVE_LIBUTIL_H )
+check_include_file( util.h HAVE_UTIL_H )
+check_include_file( pty.h HAVE_PTY_H )
+
+
+tde_save( CMAKE_REQUIRED_LIBRARIES )
+set( CMAKE_REQUIRED_LIBRARIES util )
+
+check_c_source_runs("
+ #include <pty.h>
+ int main(int argc, char* argv) {
+ int master_fd, slave_fd;
+ int result;
+ result = openpty(&master_fd, &slave_fd, 0, 0, 0);
+ return 0;
+ }"
+ HAVE_OPENPTY
+)
+
+tde_restore( CMAKE_REQUIRED_LIBRARIES )
diff --git a/kioslave/fish/genfishcode.cmake b/kioslave/fish/genfishcode.cmake
new file mode 100644
index 000000000..9b35a51ec
--- /dev/null
+++ b/kioslave/fish/genfishcode.cmake
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+SUM=$( @MD5SUM@ @CMAKE_CURRENT_SOURCE_DIR@/fish.pl | cut -d ' ' @MD5SUM_CUT@ )
+
+#echo "#define CHECKSUM "\"$SUM\"" > fishcode.h
+#echo 'static const char *fishCode(' >> fishcode.h
+#sed -e 's/\\/\\\\/g;s/"/\\"/g;s/^[ ]*/"/;/^"# /d;s/[ ]*$$/\\n"/;/^"\\n"$$/d;s/{CHECKSUM}/'$$SUM'/;' @CMAKE_CURRENT_SOURCE_DIR@/fish.pl >> fishcode.h
+#echo ');' >> fishcode.h
diff --git a/kioslave/fish/genfishcode.pl b/kioslave/fish/genfishcode.pl
new file mode 100755
index 000000000..60dfff8de
--- /dev/null
+++ b/kioslave/fish/genfishcode.pl
@@ -0,0 +1,43 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+use Digest::MD5;
+
+sub md5sum {
+ my $filename = shift;
+ my $digest;
+ eval {
+ open( my $FILE, '<', $filename )
+ or die "Can't find file $filename\n";
+ my $ctx = Digest::MD5->new;
+ $ctx->addfile($FILE);
+ $digest = $ctx->hexdigest;
+ close($FILE);
+ };
+ if ($@) {
+ warn $@;
+ }
+ return $digest;
+}
+
+my $file = $ARGV[0] or die "Missing filename argument";
+
+my $fish_md5 = md5sum($file)
+ or die "Couldn't compute MD5 for some reason\n";
+print qq{#define CHECKSUM "$fish_md5"\n};
+print qq{static const char *fishCode(\n};
+
+open( my $FISH, "<", "$file" ) or die "Can't open $file\n";
+while (<$FISH>) {
+ chomp;
+ s|\\|\\\\|g;
+ s|"|\\"|g;
+ s/^\s*/"/;
+ next if /^"# /;
+ s/\s*$/\\n"/;
+ next if /^"\\n"$/;
+ print "$_\n";
+}
+close($FISH);
+print qq{);\n};