aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Montel <montel@kde.org>2009-01-17 12:19:34 +0000
committerLaurent Montel <montel@kde.org>2009-01-17 12:19:34 +0000
commitc43b051c975ef76f411342116053da84e0ee3cd3 (patch)
tree65136f6dfbdd69d4456be940e650c3f781a5fe61
parent5020bf83969392d03b7bdbd775a9b42fdf2a6b49 (diff)
downloadextra-cmake-modules-c43b051c975ef76f411342116053da84e0ee3cd3.tar.gz
extra-cmake-modules-c43b051c975ef76f411342116053da84e0ee3cd3.tar.bz2
Fix create symlink
svn path=/trunk/KDE/kdelibs/; revision=912335
-rw-r--r--modules/FindPyKDE4.cmake6
-rw-r--r--modules/create_exe_symlink.cmake16
2 files changed, 21 insertions, 1 deletions
diff --git a/modules/FindPyKDE4.cmake b/modules/FindPyKDE4.cmake
index f738741e..dd2b7380 100644
--- a/modules/FindPyKDE4.cmake
+++ b/modules/FindPyKDE4.cmake
@@ -156,5 +156,9 @@ ENDMACRO(PYKDE4_INSTALL_PYTHON_FILES)
# executable.
#
MACRO(PYKDE4_ADD_EXECUTABLE _pyname _exename)
- INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${DATA_INSTALL_DIR}/${PROJECT_NAME}/${_pyname} -DLINK_NAME=${BIN_INSTALL_DIR}/${_exename} -P ${CMAKE_SOURCE_DIR}/cmake/modules/create_exe_symlink.cmake)" )
+ if(NOT ${PROJECT_NAME})
+ MESSAGE(STATUS "Project name is necessary to create symlink against python program!!! It will failed.")
+ endif(NOT ${PROJECT_NAME})
+ INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${DATA_INSTALL_DIR}/${PROJECT_NAME}/${_pyname} -DLINK_NAME=${BIN_INSTALL_DIR}/${_exename} -P ${current_module_dir}/create_exe_symlink.cmake)" )
ENDMACRO(PYKDE4_ADD_EXECUTABLE)
+
diff --git a/modules/create_exe_symlink.cmake b/modules/create_exe_symlink.cmake
new file mode 100644
index 00000000..6f35ff76
--- /dev/null
+++ b/modules/create_exe_symlink.cmake
@@ -0,0 +1,16 @@
+# Create an executable symlink to a Python script.
+# This also sets the target script's permission bits.
+
+MESSAGE(STATUS "Symlinking $ENV{DESTDIR}/${LINK_NAME} to $ENV{DESTDIR}/${TARGET}")
+
+GET_FILENAME_COMPONENT(abs_link_name $ENV{DESTDIR}/${LINK_NAME} ABSOLUTE)
+GET_FILENAME_COMPONENT(link_path $ENV{DESTDIR}/${LINK_NAME} PATH)
+GET_FILENAME_COMPONENT(abs_link_path ${link_path} ABSOLUTE)
+FILE(MAKE_DIRECTORY ${abs_link_path})
+
+GET_FILENAME_COMPONENT(abs_target $ENV{DESTDIR}/${TARGET} ABSOLUTE)
+IF(UNIX)
+ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${abs_target} ${abs_link_name})
+ EXECUTE_PROCESS(COMMAND chmod a+x ${abs_target})
+ENDIF(UNIX)
+# FIXME: WIN32 support