From 6c420f18fdec1f3e901f1b78724e6b4e7596c168 Mon Sep 17 00:00:00 2001 From: Alan Antonuk Date: Tue, 13 Nov 2012 19:58:11 -0500 Subject: Reorder checks in CMakeLists --- CMakeLists.txt | 102 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 133b35b..250ed30 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,9 +45,57 @@ if (CMAKE_GENERATOR MATCHES ".*(Make|Ninja).*" message(STATUS "CMAKE_BUILD_TYPE not specified. Creating ${CMAKE_BUILD_TYPE} build") endif() -#find python -find_package(PythonInterp REQUIRED) +include(TestCInline) +include(CheckFunctionExists) +include(CheckLibraryExists) +include(CMakePushCheckState) +# Detect if we need to link against a socket library: +cmake_push_check_state() +if (WIN32) + # Always use WinSock2 on Windows + set(SOCKET_LIBRARIES ws2_32) +else () + # Is it in the default link? + CHECK_FUNCTION_EXISTS(getaddrinfo HAVE_GETADDRINFO) + if (NOT (HAVE_GETADDRINFO EQUAL 1)) + CHECK_LIBRARY_EXISTS(socket getaddrinfo "" HAVE_GETADDRINFO2) + if (HAVE_GETADDRINFO2 EQUAL 1) + set(SOCKET_LIBRARIES socket) + else () + CHECK_LIBRARY_EXISTS("socket;nsl" getaddrinfo "" HAVE_GETADDRINFO3) + if (HAVE_GETADDRINFO3 EQUAL 1) + set(SOCKET_LIBRARIES socket nsl) + else () + message(FATAL_ERROR "Cannot find name resolution library (containing symbol getaddrinfo)") + endif () + endif () + endif () + + set(CMAKE_REQUIRED_LIBRARIES ${SOCKET_LIBRARIES}) + CHECK_FUNCTION_EXISTS(socket HAVE_SOCKET) + if (NOT HAVE_SOCKET EQUAL 1) + CHECK_LIBRARY_EXISTS(socket socket "" HAVE_SOCKET2) + if (NOT HAVE_SOCKET2 EQUAL 1) + set(SOCKET_LIBRARIES socket ${SOCKET_LIBRARIES}) + else () + CHECK_LIBRARY_EXISTS("socket;nsl" socket "" HAVE_SOCKET3) + if (HAVE_SOCKET3 EQUAL 1) + set(SOCKET_LIBRARIES socket nsl ${SOCKET_LIBRARIES}) + else () + message(FATAL_ERROR "Cannot find socket library (containing symbol socket)") + endif () + endif () + endif () +endif () +cmake_pop_check_state() + +cmake_push_check_state() +set(CMAKE_REQUIRED_LIBRARIES ${SOCKET_LIBRARIES}) +check_function_exists(htonll HAVE_HTONLL) +cmake_pop_check_state() + +find_package(PythonInterp REQUIRED) #Determine Python Version: if(PYTHON_EXECUTABLE) execute_process(COMMAND "${PYTHON_EXECUTABLE}" -c @@ -121,7 +169,6 @@ if (CHECK_PYTHON_JSON_FAILED) endif (CHECK_PYTHON_SIMPLEJSON_FAILED) endif (CHECK_PYTHON_JSON_FAILED) -include(TestCInline) find_path(AMQP_CODEGEN_DIR amqp_codegen.py @@ -140,55 +187,6 @@ endif() mark_as_advanced(AMQP_CODEGEN_DIR) -include(CheckFunctionExists) -include(CheckLibraryExists) -include(CMakePushCheckState) - -# Detect if we need to link against a socket library: -cmake_push_check_state() -if (WIN32) - # Always use WinSock2 on Windows - set(SOCKET_LIBRARIES ws2_32) -else () - # Is it in the default link? - CHECK_FUNCTION_EXISTS(getaddrinfo HAVE_GETADDRINFO) - if (NOT (HAVE_GETADDRINFO EQUAL 1)) - CHECK_LIBRARY_EXISTS(socket getaddrinfo "" HAVE_GETADDRINFO2) - if (HAVE_GETADDRINFO2 EQUAL 1) - set(SOCKET_LIBRARIES socket) - else () - CHECK_LIBRARY_EXISTS("socket;nsl" getaddrinfo "" HAVE_GETADDRINFO3) - if (HAVE_GETADDRINFO3 EQUAL 1) - set(SOCKET_LIBRARIES socket nsl) - else () - message(FATAL_ERROR "Cannot find name resolution library (containing symbol getaddrinfo)") - endif () - endif () - endif () - - set(CMAKE_REQUIRED_LIBRARIES ${SOCKET_LIBRARIES}) - CHECK_FUNCTION_EXISTS(socket HAVE_SOCKET) - if (NOT HAVE_SOCKET EQUAL 1) - CHECK_LIBRARY_EXISTS(socket socket "" HAVE_SOCKET2) - if (NOT HAVE_SOCKET2 EQUAL 1) - set(SOCKET_LIBRARIES socket ${SOCKET_LIBRARIES}) - else () - CHECK_LIBRARY_EXISTS("socket;nsl" socket "" HAVE_SOCKET3) - if (HAVE_SOCKET3 EQUAL 1) - set(SOCKET_LIBRARIES socket nsl ${SOCKET_LIBRARIES}) - else () - message(FATAL_ERROR "Cannot find socket library (containing symbol socket)") - endif () - endif () - endif () -endif () -cmake_pop_check_state() - -cmake_push_check_state() -set(CMAKE_REQUIRED_LIBRARIES ${SOCKET_LIBRARIES}) -check_function_exists(htonll HAVE_HTONLL) -cmake_pop_check_state() - find_package(POPT) find_package(XmlTo) -- cgit v1.2.1