[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [gnurl] 245/256: cmake: disable tests and man generation if
From: |
gnunet |
Subject: |
[GNUnet-SVN] [gnurl] 245/256: cmake: disable tests and man generation if perl/nroff not found |
Date: |
Fri, 06 Oct 2017 19:45:36 +0200 |
This is an automated email from the git hooks/post-receive script.
ng0 pushed a commit to branch master
in repository gnurl.
commit 440dbcb06e8dedba1551e32046a9415adb82eb0b
Author: Sergei Nikulov <address@hidden>
AuthorDate: Tue Sep 26 10:42:12 2017 +0300
cmake: disable tests and man generation if perl/nroff not found
Fixes https://github.com/curl/curl/issues/1500
Reported-by: Jay Satiro
Fixes https://github.com/curl/curl/pull/1662
Assisted-by: Tom Seddon
Assisted-by: address@hidden
Assisted-by: address@hidden
Closes https://github.com/curl/curl/pull/1924
---
CMake/Macros.cmake | 29 +++++++++++++++++++++++++++++
CMakeLists.txt | 48 +++++++++++++++++-------------------------------
2 files changed, 46 insertions(+), 31 deletions(-)
diff --git a/CMake/Macros.cmake b/CMake/Macros.cmake
index dab005f73..82aadca9d 100644
--- a/CMake/Macros.cmake
+++ b/CMake/Macros.cmake
@@ -93,3 +93,32 @@ macro(CURL_INTERNAL_TEST_RUN CURL_TEST)
endif(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST})
endif()
endmacro(CURL_INTERNAL_TEST_RUN)
+
+macro(CURL_NROFF_CHECK)
+ find_program(NROFF NAMES gnroff nroff)
+ if(NROFF)
+ # Need a way to write to stdin, this will do
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt" "test")
+ # Tests for a valid nroff option to generate a manpage
+ foreach(_MANOPT "-man" "-mandoc")
+ execute_process(COMMAND "${NROFF}" ${_MANOPT}
+ OUTPUT_VARIABLE NROFF_MANOPT_OUTPUT
+ INPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt"
+ ERROR_QUIET)
+ # Save the option if it was valid
+ if(NROFF_MANOPT_OUTPUT)
+ message("Found *nroff option: -- ${_MANOPT}")
+ set(NROFF_MANOPT ${_MANOPT})
+ set(NROFF_USEFUL ON)
+ break()
+ endif()
+ endforeach()
+ # No need for the temporary file
+ file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt")
+ if(NOT NROFF_USEFUL)
+ message(WARNING "Found no *nroff option to get plaintext from man pages")
+ endif()
+ else()
+ message(WARNING "Found no *nroff program")
+ endif()
+endmacro(CURL_NROFF_CHECK)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 50ff5adbf..261baba5c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -203,38 +203,20 @@ if(ENABLE_IPV6 AND NOT WIN32)
endif()
endif()
-option(ENABLE_MANUAL "to provide the built-in manual" ON)
-unset(USE_MANUAL CACHE) # TODO: cache NROFF/NROFF_MANOPT/USE_MANUAL vars?
+CURL_NROFF_CHECK()
+find_package(Perl)
+
+CMAKE_DEPENDENT_OPTION(ENABLE_MANUAL "to provide the built-in manual"
+ ON "NROFF_USEFUL;PERL_FOUND"
+ OFF)
+
+if(NOT PERL_FOUND)
+ message(STATUS "Perl not found, testing disabled.")
+ set(BUILD_TESTING OFF)
+endif()
if(ENABLE_MANUAL)
- find_program(NROFF NAMES gnroff nroff)
- if(NROFF)
- # Need a way to write to stdin, this will do
- file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt" "test")
- # Tests for a valid nroff option to generate a manpage
- foreach(_MANOPT "-man" "-mandoc")
- execute_process(COMMAND "${NROFF}" ${_MANOPT}
- OUTPUT_VARIABLE NROFF_MANOPT_OUTPUT
- INPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt"
- ERROR_QUIET)
- # Save the option if it was valid
- if(NROFF_MANOPT_OUTPUT)
- message("Found *nroff option: -- ${_MANOPT}")
- set(NROFF_MANOPT ${_MANOPT})
- set(USE_MANUAL 1)
- break()
- endif()
- endforeach()
- # No need for the temporary file
- file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt")
- if(NOT USE_MANUAL)
- message(WARNING "Found no *nroff option to get plaintext from man pages")
- endif()
- else()
- message(WARNING "Found no *nroff program")
- endif()
+ set(USE_MANUAL ON)
endif()
-# Required for building manual, docs, tests
-find_package(Perl REQUIRED)
# We need ansi c-flags, especially on HP
set(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")
@@ -1149,8 +1131,12 @@ function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE)
endfunction()
-add_subdirectory(docs)
+if(USE_MANUAL)
+ add_subdirectory(docs)
+endif()
+
add_subdirectory(lib)
+
if(BUILD_CURL_EXE)
add_subdirectory(src)
endif()
--
To stop receiving notification emails like this one, please contact
address@hidden
- [GNUnet-SVN] [gnurl] 115/256: ossfuzz: moving towards the ideal integration, (continued)
- [GNUnet-SVN] [gnurl] 115/256: ossfuzz: moving towards the ideal integration, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 241/256: cookie: fix memory leak if path was set twice in header, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 49/256: test1453: Fixed <features>, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 204/256: curl: make str2udouble not return values on error, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 225/256: symbols-in-versions: fix CURLSSLSET_NO_BACKENDS entry, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 196/256: docs: clarify the CURLOPT_INTERLEAVE* options behavior, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 154/256: mime: unified to use the typedef'd mime structs everywhere, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 246/256: FTP: zero terminate the entry path even on bad input, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 102/256: RELEASE-NOTES: synced with 8c33c963a, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 238/256: test1160: verifies cookie leak for large cookies, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 245/256: cmake: disable tests and man generation if perl/nroff not found,
gnunet <=
- [GNUnet-SVN] [gnurl] 150/256: examples/mime: minor example code fixes, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 234/256: docs: clarify the use of environment variables for proxy, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 128/256: mime: tests and examples., gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 146/256: MAIL-ETIQUETTE: added "1.9 Your emails are public", gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 137/256: docs: curl_mime_*.3 man page formatting edits, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 249/256: libcurl-tutorial: add casts in example to avoid compilation warnings., gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 130/256: mime: remove support "-" stdin pseudo-file name in curl_mime_filedata()., gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 29/256: CURL_SIZEOF_LONG: removed, use only SIZEOF_LONG, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 163/256: mime: drop internal FILE * support., gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 145/256: curl.h: fix "unused checksrc ignore", remove dangling reference, gnunet, 2017/10/06