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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list