Page 1 of 1

Вывод уведомления о зависимости при компоновке в cmake

Posted: 07 Nov 2016, 11:00
by dimka88
Что бы избежать типичных ошибок при компоновке в cmake зависимости от библиотек libpcre и libcrypto, добавил уведомления и цвет, заставляющий обратить внимание на конкретную ошибку.
Image
Image

Code: Select all

--- a/CMakeLists.txt.orig       2016-11-04 19:52:45.000000000 +0300
+++ b/CMakeLists.txt            2016-11-07 13:17:51.000000000 +0300
@@ -24,6 +24,19 @@
        ENDIF (ARCH STREQUAL x86_64)
 ENDIF (NOT DEFINED LIB_SUFFIX)

+#color console example  message(FATAL_ERROR "${Esc}[31m Red Text ${Esc}[m Restore Normal Text")
+string(ASCII 27 Esc)
+
+#Check libpcre
+find_library(PCRE_LIBRARY pcre
+ HINTS ${CMAKE_SOURCE_DIR}/lib/linux/gcc/${BIT}/lib
+ PATHS ${CMAKE_SOURCE_DIR}/lib/linux/gcc/${BIT}/lib
+)
+
+IF(NOT PCRE_LIBRARY)
+  message(FATAL_ERROR "${Esc}[31mRequired libpcre not found.\n Install libpcre3-dev and run cmake again${Esc}[m")
+ENDIF(NOT PCRE_LIBRARY)
+
 IF (EXISTS ${CMAKE_HOME_DIRECTORY}/.git AND NOT IGNORE_GIT)
        EXECUTE_PROCESS(
                COMMAND git log --no-color
@@ -50,6 +63,13 @@
        endif (NOT DEFINED CRYPTO)

        if (CRYPTO STREQUAL OPENSSL)
+               find_library(CRYPTO_LIBRARY ssl
+                       HINTS ${CMAKE_SOURCE_DIR}/lib/linux/gcc/${BIT}/lib
+                       PATHS ${CMAKE_SOURCE_DIR}/lib/linux/gcc/${BIT}/lib
+               )
+               IF(NOT CRYPTO_LIBRARY)
+                        message(FATAL_ERROR "${Esc}[31mRequired libcrypto-0.9.8 or probably later (openssl-0.9.8)  not found.\n Install libssl-dev and run cmake again${Esc}[m")
+               ENDIF(NOT CRYPTO_LIBRARY)
                add_definitions(-DCRYPTO_OPENSSL)
                set(crypto_lib crypto ssl)
        elseif (CRYPTO STREQUAL TOMCRYPT)

Re: Вывод уведомления о зависимости при компоновке в cmake

Posted: 27 Mar 2017, 12:57
by Dmitry
commit 837f73242956814bf98350d732d8aea0b7b830fa