Changeset: 06fd57c6f7aa for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=06fd57c6f7aa
Modified Files:
        cmake/FindIconvMonetDB.cmake
        cmake/FindUUID.cmake
Branch: cmake-fun
Log Message:

Fixed iconv and uuid scripts.


diffs (81 lines):

diff --git a/cmake/FindIconvMonetDB.cmake b/cmake/FindIconvMonetDB.cmake
--- a/cmake/FindIconvMonetDB.cmake
+++ b/cmake/FindIconvMonetDB.cmake
@@ -8,16 +8,15 @@
 # ICONV_FOUND  - True if iconv found.
 # ICONV_IS_BUILT_IN - If iconv is built in
 
-if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") # On FreeBSD, libiconv_open symbol 
is required
-       check_symbol_exists("libiconv_open" "iconv.h" ICONV_IS_BUILT_IN)
-else()
+# On FreeBSD, libiconv_open symbol is required and not supplied by the 
standard C library, so force the library search
+if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
        check_symbol_exists("iconv_open" "iconv.h" ICONV_IS_BUILT_IN)
 endif()
 
 if(ICONV_IS_BUILT_IN)
-       set(ICONV_INCLUDE_DIR "")
-       set(ICONV_LIBRARIES "")
-       set(ICONV_FOUND ON)
+       set(ICONV_INCLUDE_DIR "" CACHE INTERNAL "iconv include directories 
path")
+       set(ICONV_LIBRARIES "" CACHE INTERNAL "iconv libraries path")
+       set(ICONV_FOUND ON CACHE INTERNAL "iconv is available")
 else()
        # Look for the header file and library
        find_path(ICONV_INCLUDE_DIR NAMES "iconv.h" DOC "iconv include 
directory")
diff --git a/cmake/FindUUID.cmake b/cmake/FindUUID.cmake
--- a/cmake/FindUUID.cmake
+++ b/cmake/FindUUID.cmake
@@ -5,33 +5,31 @@
 # UUID_LIBRARIES       - List of libraries when using uuid.
 # UUID_FOUND   - True if uuid found.
 
+cmake_push_check_state()
 # Look for the header file.
 find_path(UUID_INCLUDE_DIR NAMES uuid/uuid.h)
-
-# Look for the library.
-if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") # Linux requires a separate library 
for UUID
-       find_library(UUID_LIBRARIES NAMES uuid)
+if(UUID_INCLUDE_DIR)
+       set(CMAKE_REQUIRED_INCLUDES 
"${CMAKE_REQUIRED_INCLUDES};${UUID_INCLUDE_DIR}")
 else()
-       set(UUID_LIBRARIES "")
+       set(UUID_INCLUDE_DIR "" CACHE INTERNAL "uuid include directories")
 endif()
-
+# Look for the library.
+find_library(UUID_LIBRARIES NAMES uuid) # Linux requires a separate library 
for UUID
 if(UUID_LIBRARIES)
-       cmake_push_check_state()
-       set(CMAKE_REQUIRED_INCLUDES 
"${CMAKE_REQUIRED_INCLUDES};${UUID_INCLUDE_DIR}")
        set(CMAKE_REQUIRED_LIBRARIES 
"${CMAKE_REQUIRED_LIBRARIES};${UUID_LIBRARIES}")
-       check_symbol_exists("uuid_generate" "uuid/uuid.h" HAVE_UUID_GENERATE) # 
some uuid instalations don't supply this symbol
-       cmake_pop_check_state()
-       if(NOT HAVE_UUID_GENERATE)
-               set(UUID_FOUND OFF)
-       endif()
+else()
+       set(UUID_LIBRARIES "" CACHE INTERNAL "uuid libraries path")
 endif()
+# Find uuid_generate symbol, which we require and some platforms don't have it
+check_symbol_exists("uuid_generate" "uuid/uuid.h" HAVE_UUID_GENERATE)
+cmake_pop_check_state()
 
-# On Linux, both library and include directory path must be set
-include(FindPackageHandleStandardArgs)
-if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-       find_package_handle_standard_args(UUID DEFAULT_MSG UUID_LIBRARIES 
UUID_INCLUDE_DIR)
-else()
-       find_package_handle_standard_args(UUID DEFAULT_MSG UUID_INCLUDE_DIR)
+if(HAVE_UUID_GENERATE)
+       include(FindPackageHandleStandardArgs)
+       if(${UUID_LIBRARIES} STREQUAL "")
+               find_package_handle_standard_args(UUID DEFAULT_MSG 
UUID_INCLUDE_DIR)
+       else()
+               find_package_handle_standard_args(UUID DEFAULT_MSG 
UUID_LIBRARIES UUID_INCLUDE_DIR)
+       endif()
+       mark_as_advanced(UUID_INCLUDE_DIR UUID_LIBRARIES)
 endif()
-
-mark_as_advanced(UUID_INCLUDE_DIR UUID_LIBRARIES)
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to