summaryrefslogtreecommitdiffstats
path: root/kdesu
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 /kdesu
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 'kdesu')
-rw-r--r--kdesu/CMakeLists.txt53
-rw-r--r--kdesu/kdesu/CMakeLists.txt30
-rw-r--r--kdesu/kdesud/CMakeLists.txt35
3 files changed, 118 insertions, 0 deletions
diff --git a/kdesu/CMakeLists.txt b/kdesu/CMakeLists.txt
new file mode 100644
index 000000000..5461732be
--- /dev/null
+++ b/kdesu/CMakeLists.txt
@@ -0,0 +1,53 @@
+#################################################
+#
+# (C) 2010-2011 Serghei Amelian
+# serghei (DOT) amelian (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include( CheckCSourceCompiles )
+include( CheckFunctionExists )
+
+check_c_source_compiles( "
+ #define _GNU_SOURCE 1
+ #include <sys/socket.h>
+ int main(int argc, char *argv[]) { struct ucred red; return 0; } "
+ HAVE_STRUCT_UCRED )
+
+check_c_source_runs( "
+ #include <grp.h>
+ #include <sys/types.h>
+ int main() { struct group *grp = getgrnam(\"nogroup\"); if(grp) return 0; return 1; }"
+ HAVE_NOGROUP )
+
+if( HAVE_NOGROUP )
+ set( nogroup nogroup )
+else()
+ check_c_source_runs("
+ #include <grp.h>
+ #include <sys/types.h>
+ int main() { struct group *grp = getgrnam(\"nobody\"); if(grp) return 0; return 1; }"
+ HAVE_NOBODY )
+ if( HAVE_NOBODY )
+ set( nogroup nobody )
+ else()
+ set( nogroup 65534 )
+ endif()
+endif()
+
+check_function_exists( getpeereid HAVE_GETPEEREID )
+check_include_file( "sys/select.h" HAVE_SYS_SELECT_H )
+check_include_file( "sys/wait.h" HAVE_SYS_WAIT_H )
+
+if( WITH_SUDO_KDESU_BACKEND )
+ set( DEFAULT_SUPER_USER_COMMAND sudo CACHE INTERNAL "" FORCE )
+else()
+ set( DEFAULT_SUPER_USER_COMMAND su CACHE INTERNAL "" FORCE )
+endif()
+
+add_subdirectory( kdesu )
+add_subdirectory( kdesud )
diff --git a/kdesu/kdesu/CMakeLists.txt b/kdesu/kdesu/CMakeLists.txt
new file mode 100644
index 000000000..b18fbfb57
--- /dev/null
+++ b/kdesu/kdesu/CMakeLists.txt
@@ -0,0 +1,30 @@
+#################################################
+#
+# (C) 2010-2011 Serghei Amelian
+# serghei (DOT) amelian (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
+
+
+##### kdesu (executable) ########################
+
+tde_add_executable( kdesu AUTOMOC
+ SOURCES kdesu.cpp sudlg.cpp
+ LINK kdesu-shared kio-shared
+ DESTINATION ${BIN_INSTALL_DIR}
+)
diff --git a/kdesu/kdesud/CMakeLists.txt b/kdesu/kdesud/CMakeLists.txt
new file mode 100644
index 000000000..5e7fe6cbb
--- /dev/null
+++ b/kdesu/kdesud/CMakeLists.txt
@@ -0,0 +1,35 @@
+#################################################
+#
+# (C) 2010-2011 Serghei Amelian
+# serghei (DOT) amelian (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+# FIXME there is used KDE_USE_FPIE
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
+
+
+##### kdesud (executable) #######################
+
+tde_add_executable( kdesud
+ SOURCES kdesud.cpp repo.cpp lexer.cpp handler.cpp secure.cpp
+ LINK kdesu-shared
+ DESTINATION ${BIN_INSTALL_DIR}
+)
+
+install( CODE "execute_process( COMMAND chown root:${nogroup} \$ENV{DESTDIR}${_destination}/kdesud )" )
+install( CODE "execute_process( COMMAND chmod 2755 \$ENV{DESTDIR}${_destination}/kdesud )" )