summaryrefslogtreecommitdiff
path: root/qpid/cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2013-04-01 16:47:10 +0000
committerAlan Conway <aconway@apache.org>2013-04-01 16:47:10 +0000
commit36b03a47bc92662cfe8b09f094884e2c223f5205 (patch)
treeda45e15a14c67c218265da8de5ce985c2e2cc29a /qpid/cpp
parent12f08eee5b5e0d3b77537e66180c74d7ac845ef4 (diff)
downloadqpid-python-36b03a47bc92662cfe8b09f094884e2c223f5205.tar.gz
QPID-4687: Add uninstall make target to cmake build
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1463202 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/CMakeLists.txt11
-rw-r--r--qpid/cpp/bindings/qmf/python/CMakeLists.txt42
-rw-r--r--qpid/cpp/bindings/qmf2/python/CMakeLists.txt38
-rw-r--r--qpid/cpp/cmake_uninstall.cmake.in22
4 files changed, 85 insertions, 28 deletions
diff --git a/qpid/cpp/CMakeLists.txt b/qpid/cpp/CMakeLists.txt
index f9b3be6099..74b6bdcc1d 100644
--- a/qpid/cpp/CMakeLists.txt
+++ b/qpid/cpp/CMakeLists.txt
@@ -101,6 +101,17 @@ else (OPTIONAL_ARG)
add_custom_target(docs ALL)
endif (OPTIONAL_ARG)
+# uninstall target
+configure_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+ IMMEDIATE @ONLY)
+
+add_custom_target(uninstall
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
+
+
+# Subdirectories
add_subdirectory(managementgen)
add_subdirectory(src)
add_subdirectory(etc)
diff --git a/qpid/cpp/bindings/qmf/python/CMakeLists.txt b/qpid/cpp/bindings/qmf/python/CMakeLists.txt
index 1768df7f85..b6583b97c1 100644
--- a/qpid/cpp/bindings/qmf/python/CMakeLists.txt
+++ b/qpid/cpp/bindings/qmf/python/CMakeLists.txt
@@ -31,23 +31,37 @@ set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_F
##------------------------------------
## Install the complete Python binding
##------------------------------------
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qmfengine.py
- ${CMAKE_CURRENT_SOURCE_DIR}/qmf.py
- DESTINATION ${PYTHON_SITEARCH_PACKAGES}
- COMPONENT ${QPID_COMPONENT_CLIENT}
- )
+
+# Copy py source to binary dir so pyc/pyo will be generated in binary dir.
+file(COPY
+ "${CMAKE_CURRENT_SOURCE_DIR}/qmf.py"
+ DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
+
+# Python compile the modules
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile qmfengine.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile qmfengine.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile qmf.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile qmf.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+
+install(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/qmfengine.py
+ ${CMAKE_CURRENT_BINARY_DIR}/qmfengine.pyc
+ ${CMAKE_CURRENT_BINARY_DIR}/qmfengine.pyo
+ ${CMAKE_CURRENT_SOURCE_DIR}/qmf.py
+ ${CMAKE_CURRENT_BINARY_DIR}/qmf.pyc
+ ${CMAKE_CURRENT_BINARY_DIR}/qmf.pyo
+ DESTINATION ${PYTHON_SITEARCH_PACKAGES}
+ COMPONENT ${QPID_COMPONENT_CLIENT}
+ )
+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/_qmfengine_python.so
RENAME _qmfengine.so
DESTINATION ${PYTHON_SITEARCH_PACKAGES}
COMPONENT ${QPID_COMPONENT_CLIENT}
)
-# Python compile the installed modules
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile qmfengine.py
- WORKING_DIRECTORY ${PYTHON_SITEARCH_PACKAGES})")
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile qmfengine.py
- WORKING_DIRECTORY ${PYTHON_SITEARCH_PACKAGES})")
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile qmf.py
- WORKING_DIRECTORY ${PYTHON_SITEARCH_PACKAGES})")
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile qmf.py
- WORKING_DIRECTORY ${PYTHON_SITEARCH_PACKAGES})")
diff --git a/qpid/cpp/bindings/qmf2/python/CMakeLists.txt b/qpid/cpp/bindings/qmf2/python/CMakeLists.txt
index 1c8447116e..57d9ab0fcb 100644
--- a/qpid/cpp/bindings/qmf2/python/CMakeLists.txt
+++ b/qpid/cpp/bindings/qmf2/python/CMakeLists.txt
@@ -28,26 +28,36 @@ swig_link_libraries(cqmf2_python qmf2 ${PYTHON_LIBRARIES})
set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing -I${PYTHON_INCLUDE_PATH} -I${qpid-cpp_SOURCE_DIR}/include")
+# Move source into binary dir so compiled .pyc,pyo files will be in binary dir.
+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/qmf2.py"
+ DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
+
+# Python compile the modules
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile cqmf2.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile cqmf2.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile qmf2.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile qmf2.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
##------------------------------------
## Install the complete Python binding
##------------------------------------
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cqmf2.py
- ${CMAKE_CURRENT_SOURCE_DIR}/qmf2.py
- DESTINATION ${PYTHON_SITEARCH_PACKAGES}
- COMPONENT ${QPID_COMPONENT_CLIENT}
- )
+install(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/cqmf2.py
+ ${CMAKE_CURRENT_BINARY_DIR}/cqmf2.pyc
+ ${CMAKE_CURRENT_BINARY_DIR}/cqmf2.pyo
+ ${CMAKE_CURRENT_SOURCE_DIR}/qmf2.py
+ ${CMAKE_CURRENT_BINARY_DIR}/qmf2.pyc
+ ${CMAKE_CURRENT_BINARY_DIR}/qmf2.pyo
+ DESTINATION ${PYTHON_SITEARCH_PACKAGES}
+ COMPONENT ${QPID_COMPONENT_CLIENT}
+ )
+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/_cqmf2_python.so
RENAME _cqmf2.so
DESTINATION ${PYTHON_SITEARCH_PACKAGES}
COMPONENT ${QPID_COMPONENT_CLIENT}
)
-# Python compile the installed modules
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile cqmf2.py
- WORKING_DIRECTORY ${PYTHON_SITEARCH_PACKAGES})")
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile cqmf2.py
- WORKING_DIRECTORY ${PYTHON_SITEARCH_PACKAGES})")
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile qmf2.py
- WORKING_DIRECTORY ${PYTHON_SITEARCH_PACKAGES})")
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile qmf2.py
- WORKING_DIRECTORY ${PYTHON_SITEARCH_PACKAGES})")
diff --git a/qpid/cpp/cmake_uninstall.cmake.in b/qpid/cpp/cmake_uninstall.cmake.in
new file mode 100644
index 0000000000..c6d809418e
--- /dev/null
+++ b/qpid/cpp/cmake_uninstall.cmake.in
@@ -0,0 +1,22 @@
+if (NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+ message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
+endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+
+file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
+string(REGEX REPLACE "\n" ";" files "${files}")
+list(REVERSE files)
+foreach (file ${files})
+ message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
+ if (EXISTS "$ENV{DESTDIR}${file}")
+ execute_process(
+ COMMAND @CMAKE_COMMAND@ -E remove "$ENV{DESTDIR}${file}"
+ OUTPUT_VARIABLE rm_out
+ RESULT_VARIABLE rm_retval
+ )
+ if(NOT ${rm_retval} EQUAL 0)
+ message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
+ endif (NOT ${rm_retval} EQUAL 0)
+ else (EXISTS "$ENV{DESTDIR}${file}")
+ message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
+ endif (EXISTS "$ENV{DESTDIR}${file}")
+endforeach(file)