diff --git a/CMakeLists.txt b/CMakeLists.txt index a5ff0f76f..f16fce036 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -697,11 +697,22 @@ if( WITH_CRYPTSETUP ) endif( NOT LIBCRYPTSETUP_FOUND ) set( HAVE_CRYPTSETUP 1 ) if ( HAVE_CRYPTSETUP ) + # save CMAKE_REQUIRED_LIBRARIES + set( bak_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ) + set( CMAKE_REQUIRED_LIBRARIES ${LIBCRYPTSETUP_LIBRARIES} ) check_c_source_compiles(" #include #include - int main(int argc, char *argv[]) { crypt_keyslot_info status = CRYPT_SLOT_INVALID; crypt_get_type(NULL); return 0; } " + int main(int argc, char *argv[]) { crypt_keyslot_info status = CRYPT_SLOT_INVALID; return 0; } " HAVE_NEW_CRYPTSETUP ) + check_c_source_compiles(" + #include + #include + int main(int argc, char *argv[]) { crypt_get_type(NULL); return 0; } " + HAVE_CRYPTSETUP_GET_TYPE ) + # restore CMAKE_REQUIRED_LIBRARIES + set( CMAKE_REQUIRED_LIBRARIES ${bak_CMAKE_REQUIRED_LIBRARIES} ) + unset( bak_CMAKE_REQUIRED_LIBRARIES ) endif( ) if ( NOT HAVE_NEW_CRYPTSETUP ) set( CRYPTSETUP_OLD_API 1 ) diff --git a/config.h.cmake b/config.h.cmake index 0eb6f6781..8c104d5ce 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -151,6 +151,9 @@ /* Defines if your system uses the old cryptsetup API */ #cmakedefine CRYPTSETUP_OLD_API 1 +/* Defines if your system uses a cryptsetup API that includes crypt_get_type */ +#cmakedefine HAVE_CRYPTSETUP_GET_TYPE 1 + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_CTYPE_H 1