]> git.lyx.org Git - lyx.git/blob - development/checkurls/CMakeLists.txt
Cmake build: Check for perl before use
[lyx.git] / development / checkurls / CMakeLists.txt
1 # This file is part of LyX, the document processor.
2 # Licence details can be found in the file COPYING.
3 #
4 # Copyright (c) 2013 Kornel Benko <kornel@lyx.org>
5 #           (c) 2013 Scott Kostyshak <skotysh@lyx.org>
6 #
7
8 set(TOP_SEARCH_PATH "${TOP_SRC_DIR}")
9 set(LYXFILES_FILE "${CMAKE_CURRENT_BINARY_DIR}/filesToScan")
10 file(WRITE "${LYXFILES_FILE}")
11 file(GLOB_RECURSE lyx_files RELATIVE "${TOP_SEARCH_PATH}" "${TOP_SEARCH_PATH}/*.lyx")
12
13 set(NO_SEARCH_PATHS "/attic/" "src/tex2lyx/test" "/autotests/" "development/" "/Obsolete/")
14 foreach(_f ${lyx_files})
15   set(found OFF)
16   foreach(_p ${NO_SEARCH_PATHS})
17     if (_f MATCHES "${_p}")
18       set(found ON)
19     endif()
20   endforeach()
21   if (NOT found)
22     file(APPEND "${LYXFILES_FILE}" "${_f}\n")
23   endif()
24 endforeach()
25
26 # Define the perl-script running the actual test
27 set(SEARCH_URL_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/search_url.pl")
28 set(GET_TRANSLATORS_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/getTranslators.pl")
29
30 # Test used and as accessible expected urls
31 add_test(NAME "check_accessible_urls"
32   WORKING_DIRECTORY "${TOP_SEARCH_PATH}"
33   COMMAND ${PERL_EXECUTABLE} "${SEARCH_URL_SCRIPT}"
34     "filesToScan=${LYXFILES_FILE}"
35     "ignoredURLS=${CMAKE_CURRENT_SOURCE_DIR}/inaccessibleURLS"
36     "ignoredURLS=${CMAKE_CURRENT_SOURCE_DIR}/knownInvalidURLS"
37     "knownToRegisterURLS=${CMAKE_CURRENT_SOURCE_DIR}/knownToRegisterURLS"
38     "summaryFile=${TOP_BINARY_DIR}/Testing/Temporary/LastFailedAccessibleURLS.log")
39
40 # Test inaccessible, but revert the error marker (failed <=> passed)
41 # if this fails, then some url is accessible and does not belong
42 # to file inaccessibleURLS
43 add_test(NAME "check_inaccessible_urls"
44   WORKING_DIRECTORY "${TOP_SEARCH_PATH}"
45   COMMAND ${PERL_EXECUTABLE} "${SEARCH_URL_SCRIPT}"
46     "filesToScan=${LYXFILES_FILE}"
47     "selectedURLS=${CMAKE_CURRENT_SOURCE_DIR}/inaccessibleURLS"
48     "revertedURLS=${CMAKE_CURRENT_SOURCE_DIR}/inaccessibleURLS"
49     "knownToRegisterURLS=${CMAKE_CURRENT_SOURCE_DIR}/knownToRegisterURLS"
50     "summaryFile=${TOP_BINARY_DIR}/Testing/Temporary/LastFailedInaccessibleURLS.log")
51
52 #
53 # Test our own bad urls
54 # and urls used in examples which should not match valid urls
55 # if this test fails, then our testtool contains errors
56 add_test(NAME "check_invalid_urls"
57   WORKING_DIRECTORY "${TOP_SEARCH_PATH}"
58   COMMAND ${PERL_EXECUTABLE} "${SEARCH_URL_SCRIPT}"
59     "extraURLS=${CMAKE_CURRENT_SOURCE_DIR}/knownInvalidURLS"
60     "revertedURLS=${CMAKE_CURRENT_SOURCE_DIR}/knownInvalidURLS"
61     "knownToRegisterURLS=${CMAKE_CURRENT_SOURCE_DIR}/knownToRegisterURLS"
62     "summaryFile=${TOP_BINARY_DIR}/Testing/Temporary/LastFailedKnownInvalidURLS.log")
63
64 set(URL_TEST_NAMES "check_accessible_urls" "check_inaccessible_urls" "check_invalid_urls")
65 set_tests_properties(${URL_TEST_NAMES}
66         PROPERTIES RESOURCE_LOCK "url.lock" LABELS "url")
67
68 find_file(PHANTOMJS_EXE NAME phantomjs PATHS ENV PATH)
69 message(STATUS "PHANTOMJS_EXE = ${PHANTOMJS_EXE}")
70 if (PHANTOMJS_EXE)
71   add_test(NAME "check_translators"
72     WORKING_DIRECTORY "${TOP_BINARY_DIR}"
73     COMMAND ${PERL_EXECUTABLE} "${GET_TRANSLATORS_SCRIPT}")
74
75   set_tests_properties("check_translators"
76           PROPERTIES RESOURCE_LOCK "url.lock")
77
78 else()
79   message(STATUS "Cannot check translators, missing required program phantomjs")
80 endif()
81
82 settestlabel("check_inaccessible_urls" "inverted")
83 settestlabel("check_invalid_urls" "inverted")