diff options
author | Laurent Montel <montel@kde.org> | 2009-01-17 12:19:34 +0000 |
---|---|---|
committer | Laurent Montel <montel@kde.org> | 2009-01-17 12:19:34 +0000 |
commit | c43b051c975ef76f411342116053da84e0ee3cd3 (patch) | |
tree | 65136f6dfbdd69d4456be940e650c3f781a5fe61 | |
parent | 5020bf83969392d03b7bdbd775a9b42fdf2a6b49 (diff) | |
download | extra-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.cmake | 6 | ||||
-rw-r--r-- | modules/create_exe_symlink.cmake | 16 |
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 |