summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMake/FindA2X.cmake75
-rw-r--r--CMakeLists.txt5
2 files changed, 78 insertions, 2 deletions
diff --git a/CMake/FindA2X.cmake b/CMake/FindA2X.cmake
new file mode 100644
index 00000000..b38f5086
--- /dev/null
+++ b/CMake/FindA2X.cmake
@@ -0,0 +1,75 @@
1#
2# (c)2015 KiCad Developers
3# (c)2015 Brian Sidebotham <brian.sidebotham@gmail.com>
4#
5# CMake module to find a2x (part of the asciidoc toolchain).
6#
7# Variables generated:
8#
9# A2X_FOUND true when A2X_COMMAND is valid
10# A2X_COMMAND The command to run a2x (may be a list including an interpreter)
11# A2X_VERSION The a2x version that has been found
12#
13
14# Have a go at finding a a2x executable
15find_program( A2X_PROGRAM a2x )
16
17# Found something, attempt to try and use it...
18if( A2X_PROGRAM )
19 execute_process(
20 COMMAND ${A2X_PROGRAM} --version
21 OUTPUT_VARIABLE _OUT
22 ERROR_VARIABLE _ERR
23 RESULT_VARIABLE _RES
24 OUTPUT_STRIP_TRAILING_WHITESPACE )
25
26 # If it worked, set the A2X_COMMAND
27 if( _RES MATCHES 0 )
28 set( A2X_COMMAND "${A2X_PROGRAM}" )
29 endif()
30endif()
31
32# If nothing could be found, test to see if we can just find the script file,
33# that we'll then run with the python interpreter
34if( NOT A2X_COMMAND )
35 find_file( A2X_SCRIPT a2x.py )
36
37 if( A2X_SCRIPT )
38 # Find the python interpreter quietly
39 if( NOT PYTHONINTERP_FOUND )
40 find_package( PYTHONINTERP QUIET )
41 endif()
42
43 if( NOT PYTHONINTERP_FOUND )
44 # Python's not available so can't find a2x...
45 set( A2X_COMMAND "" )
46 else()
47 # Build the python based command
48 set( A2X_COMMAND "${PYTHON_EXECUTABLE}" "${A2X_SCRIPT}" )
49
50 execute_process(
51 COMMAND ${A2X_COMMAND} --version
52 OUTPUT_VARIABLE _OUT
53 ERROR_VARIABLE _ERR
54 RESULT_VARIABLE _RES
55 OUTPUT_STRIP_TRAILING_WHITESPACE )
56
57 # If it still can't be run, then give up
58 if( NOT _RES MATCHES 0 )
59 set( A2X_COMMAND "" )
60 endif()
61 endif()
62 endif()
63endif()
64
65# If we've found a command that works, check the version
66if( A2X_COMMAND )
67 string(REGEX REPLACE ".*a2x[^0-9.]*\([0-9.]+\).*" "\\1" A2X_VERSION "${_OUT}")
68endif()
69
70# Generate the *_FOUND as necessary, etc.
71include( FindPackageHandleStandardArgs )
72find_package_handle_standard_args(
73 A2X
74 REQUIRED_VARS A2X_COMMAND
75 VERSION_VAR A2X_VERSION )
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b4bdf756..ba2f8be3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,6 +8,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMake)
8 8
9find_package(XKBCommon REQUIRED) 9find_package(XKBCommon REQUIRED)
10find_package(WLC REQUIRED) 10find_package(WLC REQUIRED)
11find_package(A2X REQUIRED)
11 12
12if (UNIX) 13if (UNIX)
13 find_library(DL_LIBRARY dl) 14 find_library(DL_LIBRARY dl)
@@ -45,13 +46,13 @@ INSTALL(
45) 46)
46 47
47ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 48ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1
48 COMMAND a2x --no-xmllint --doctype manpage --format manpage 49 COMMAND ${A2X_COMMAND} --no-xmllint --doctype manpage --format manpage
49 -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}/sway.1.txt 50 -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}/sway.1.txt
50 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sway.1.txt 51 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sway.1.txt
51) 52)
52 53
53ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5 54ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5
54 COMMAND a2x --no-xmllint --doctype manpage --format manpage 55 COMMAND ${A2X_COMMAND} --no-xmllint --doctype manpage --format manpage
55 -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}/sway.5.txt 56 -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}/sway.5.txt
56 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sway.5.txt 57 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sway.5.txt
57) 58)