summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryuangongji <82787816@qq.com>2019-06-09 20:15:37 +0800
committerAzat Khuzhin <azat@libevent.org>2019-06-13 21:57:39 +0300
commit7201062f3ef505a77baa6ccaf1cf73812462308a (patch)
treea645cc7341006ca98a41e0aa23eb2c4bb76b9fe3
parent0374b55942e533a3c3997439481a8d05d6c8f729 (diff)
downloadlibevent-7201062f3ef505a77baa6ccaf1cf73812462308a.tar.gz
cmake: add missing autotools targets (doxygen, uninstall, event_rpcgen.py)
Close: #832 (cherry-picked)
-rw-r--r--.gitignore2
-rw-r--r--CMakeLists.txt27
-rw-r--r--cmake/Uninstall.cmake.in23
3 files changed, 52 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index c9605181..40439f63 100644
--- a/.gitignore
+++ b/.gitignore
@@ -131,6 +131,7 @@ LibeventConfigVersion.cmake
LibeventTargets.cmake
bin/
cmake_install.cmake
+Uninstall.cmake
lib/
tmp/
verify_tests.sh
@@ -141,6 +142,7 @@ event_extra.dir
*.vcxproj
*.sln
*.filters
+install_manifest.txt
# ninja
build.ninja
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 038503c5..e2089f83 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1474,6 +1474,33 @@ install(EXPORT LibeventTargets
DESTINATION "${DEF_INSTALL_CMAKE_DIR}"
COMPONENT dev)
+# Install the scripts.
+install(PROGRAMS
+ ${CMAKE_CURRENT_SOURCE_DIR}/event_rpcgen.py
+ DESTINATION "bin"
+ COMPONENT runtime)
+
+# Create documents with doxygen.
+find_program(DOXYGEN doxygen)
+if (DOXYGEN)
+ add_custom_target(doxygen
+ COMMAND ${DOXYGEN} Doxyfile
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+else()
+ message(WARNING "The doxygen target will not support since doxygen command was not found!")
+endif()
+
+
+# Create the uninstall target.
+# https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake
+configure_file(${PROJECT_SOURCE_DIR}/cmake/Uninstall.cmake.in
+ ${PROJECT_BINARY_DIR}/Uninstall.cmake
+ @ONLY)
+
+add_custom_target(uninstall
+ COMMAND ${CMAKE_COMMAND} -P ${PROJECT_BINARY_DIR}/Uninstall.cmake)
+
+
message(STATUS "")
message(STATUS " ---( Libevent " ${EVENT_VERSION} " )---")
message(STATUS "")
diff --git a/cmake/Uninstall.cmake.in b/cmake/Uninstall.cmake.in
new file mode 100644
index 00000000..c6dc09ef
--- /dev/null
+++ b/cmake/Uninstall.cmake.in
@@ -0,0 +1,23 @@
+# https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake
+
+if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
+ message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
+endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
+
+file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
+string(REGEX REPLACE "\n" ";" files "${files}")
+foreach(file ${files})
+ message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
+ if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+ exec_program(
+ "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+ OUTPUT_VARIABLE rm_out
+ RETURN_VALUE rm_retval
+ )
+ if(NOT "${rm_retval}" STREQUAL 0)
+ message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
+ endif(NOT "${rm_retval}" STREQUAL 0)
+ else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+ message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
+ endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+endforeach(file)