On Friday 01 January 2010 16:43:10 Pau Garcia i Quiles wrote: > On Fri, Jan 1, 2010 at 7:22 PM, Raphael Kubo da Costa <[email protected]> wrote: > > On Friday 01 January 2010 16:01:14 Alexander Neundorf wrote: > >> On Friday 01 January 2010, Raphael Kubo da Costa wrote: > >> > Hey there, > >> > > >> > As you can see on my.cdash.org, both kdeadmin and kdenetwork fail to > >> > build > >> > > >> > cleanly on FreeBSD: > >> > * kdeadmin/kuser's CMakeLists.txt's check for the need to link > >> > against - > >> > > >> > lcrypt is broken on FreeBSD, since the crypt() function is defined in > >> > unistd.h, not crypt.h, even though -lcrypt still must be passed to the > >> > compiler > >> > >> Does crypt.h also exist ? > >> You could also try check_symbol_exists() ( > >> http://www.cmake.org/cmake/help/cmake2.6docs.html#module:CheckSymbolExis > >> ts ) to find out whether crypt() is in unistd.h or crypt.h > > > > No, crypt.h doesn't exist. Would check_symbol_exists() not work then? How > > about using check_library_exists()? > > Something like this should work in all cases: > > find_file( CRYPT_HEADER crypt.h ) > find_library( CRYPT_LIBRARY crypt ) > > if( NOT CRYPT_HEADER ) > set( CRYPT_HEADER unistd.h ) > endif( NOT CRYPT_HEADER) > > include(CheckFunctionExists) > include(CheckLibraryExists) > > set(CMAKE_REQUIRED_INCLUDES ${CRYPT_HEADER}) > check_function_exists(crypt CRYPT3_EXISTS) > if(NOT CRYPT3_EXISTS) > if(CRYPT_LIBRARY) > set(CMAKE_REQUIRED_LIBRARIES "crypt") > set(CMAKE_REQUIRED_INCLUDES ${CRYPT_HEADER}) > check_function_exists(crypt CRYPT3_EXISTS_WITH_LIBRARY) > endif(CRYPT_LIBRARY) > endif(NOT CRYPT3_EXISTS) > > if(CRYPT3_EXISTS OR CRYPT3_EXISTS_WITH_LIBRARY) > # add_executable, or whatever you should do if crypt(3) is available > endif(CRYPT3_EXISTS OR CRYPT3_EXISTS_WITH_LIBRARY) > > if( CRYPT3_EXISTS_WITH_LIBRARY ) > target_link_libraries( yourtarget ${CRYPT_LIBRARY} ) > endif( CRYPT3_EXISTS_WITH_LIBRARY ) > > It's probably possible to simplify it but I'm not in the mood just now :-)
Is this really necessary? What if we just check if libcrypt exists and link to it if it does? _______________________________________________ Kde-buildsystem mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-buildsystem
