Add option to use a system-installed KWIML
Do not activate it with the general use-system-libs options for now because KWIML is not commonly distributed or available.
This commit is contained in:
parent
036b6ef7c4
commit
a5dd0c9d42
|
@ -138,8 +138,13 @@ macro(CMAKE_HANDLE_SYSTEM_LIBRARIES)
|
||||||
option(CMAKE_USE_SYSTEM_FORM "Use system-installed libform" "${CMAKE_USE_SYSTEM_LIBRARY_FORM}")
|
option(CMAKE_USE_SYSTEM_FORM "Use system-installed libform" "${CMAKE_USE_SYSTEM_LIBRARY_FORM}")
|
||||||
option(CMAKE_USE_SYSTEM_JSONCPP "Use system-installed jsoncpp" "${CMAKE_USE_SYSTEM_LIBRARY_JSONCPP}")
|
option(CMAKE_USE_SYSTEM_JSONCPP "Use system-installed jsoncpp" "${CMAKE_USE_SYSTEM_LIBRARY_JSONCPP}")
|
||||||
|
|
||||||
|
# For now use system KWIML only if explicitly requested rather
|
||||||
|
# than activating via the general system libs options.
|
||||||
|
option(CMAKE_USE_SYSTEM_KWIML "Use system-installed KWIML" OFF)
|
||||||
|
mark_as_advanced(CMAKE_USE_SYSTEM_KWIML)
|
||||||
|
|
||||||
# Mention to the user what system libraries are being used.
|
# Mention to the user what system libraries are being used.
|
||||||
foreach(util ${UTILITIES})
|
foreach(util ${UTILITIES} KWIML)
|
||||||
if(CMAKE_USE_SYSTEM_${util})
|
if(CMAKE_USE_SYSTEM_${util})
|
||||||
message(STATUS "Using system-installed ${util}")
|
message(STATUS "Using system-installed ${util}")
|
||||||
endif()
|
endif()
|
||||||
|
@ -270,6 +275,20 @@ macro (CMAKE_BUILD_UTILITIES)
|
||||||
# (a macro defined in this file)
|
# (a macro defined in this file)
|
||||||
CMAKE_HANDLE_SYSTEM_LIBRARIES()
|
CMAKE_HANDLE_SYSTEM_LIBRARIES()
|
||||||
|
|
||||||
|
if(CMAKE_USE_SYSTEM_KWIML)
|
||||||
|
find_package(KWIML 1.0)
|
||||||
|
if(NOT KWIML_FOUND)
|
||||||
|
message(FATAL_ERROR "CMAKE_USE_SYSTEM_KWIML is ON but KWIML is not found!")
|
||||||
|
endif()
|
||||||
|
set(CMake_KWIML_LIBRARIES kwiml::kwiml)
|
||||||
|
else()
|
||||||
|
set(CMake_KWIML_LIBRARIES "")
|
||||||
|
if(BUILD_TESTING)
|
||||||
|
set(KWIML_TEST_ENABLE 1)
|
||||||
|
endif()
|
||||||
|
add_subdirectory(Utilities/KWIML)
|
||||||
|
endif()
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# Build zlib library for Curl, CMake, and CTest.
|
# Build zlib library for Curl, CMake, and CTest.
|
||||||
set(CMAKE_ZLIB_HEADER "cm_zlib.h")
|
set(CMAKE_ZLIB_HEADER "cm_zlib.h")
|
||||||
|
@ -538,10 +557,10 @@ if("x${CMAKE_TESTS_CDASH_SERVER}" STREQUAL "x")
|
||||||
set(CMAKE_TESTS_CDASH_SERVER "http://open.cdash.org")
|
set(CMAKE_TESTS_CDASH_SERVER "http://open.cdash.org")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_TESTING)
|
if(CMake_TEST_EXTERNAL_CMAKE)
|
||||||
set(KWIML_TEST_ENABLE 1)
|
set(KWIML_TEST_ENABLE 1)
|
||||||
|
add_subdirectory(Utilities/KWIML)
|
||||||
endif()
|
endif()
|
||||||
add_subdirectory(Utilities/KWIML)
|
|
||||||
|
|
||||||
if(NOT CMake_TEST_EXTERNAL_CMAKE)
|
if(NOT CMake_TEST_EXTERNAL_CMAKE)
|
||||||
# build the utilities (a macro defined in this file)
|
# build the utilities (a macro defined in this file)
|
||||||
|
|
|
@ -566,6 +566,7 @@ target_link_libraries(CMakeLib cmsys
|
||||||
${CMAKE_TAR_LIBRARIES} ${CMAKE_COMPRESS_LIBRARIES}
|
${CMAKE_TAR_LIBRARIES} ${CMAKE_COMPRESS_LIBRARIES}
|
||||||
${CMAKE_CURL_LIBRARIES}
|
${CMAKE_CURL_LIBRARIES}
|
||||||
${CMAKE_JSONCPP_LIBRARIES}
|
${CMAKE_JSONCPP_LIBRARIES}
|
||||||
|
${CMake_KWIML_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
# On Apple we need CoreFoundation
|
# On Apple we need CoreFoundation
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
/* Whether CMake is using its own utility libraries. */
|
/* Whether CMake is using its own utility libraries. */
|
||||||
#cmakedefine CMAKE_USE_SYSTEM_CURL
|
#cmakedefine CMAKE_USE_SYSTEM_CURL
|
||||||
#cmakedefine CMAKE_USE_SYSTEM_EXPAT
|
#cmakedefine CMAKE_USE_SYSTEM_EXPAT
|
||||||
|
#cmakedefine CMAKE_USE_SYSTEM_KWIML
|
||||||
#cmakedefine CMAKE_USE_SYSTEM_ZLIB
|
#cmakedefine CMAKE_USE_SYSTEM_ZLIB
|
||||||
#cmakedefine CMAKE_USE_SYSTEM_BZIP2
|
#cmakedefine CMAKE_USE_SYSTEM_BZIP2
|
||||||
#cmakedefine CMAKE_USE_SYSTEM_LIBARCHIVE
|
#cmakedefine CMAKE_USE_SYSTEM_LIBARCHIVE
|
||||||
|
|
|
@ -12,7 +12,14 @@
|
||||||
#ifndef cm_kwiml_h
|
#ifndef cm_kwiml_h
|
||||||
#define cm_kwiml_h
|
#define cm_kwiml_h
|
||||||
|
|
||||||
#include "KWIML/include/kwiml/abi.h"
|
/* Use the KWIML library configured for CMake. */
|
||||||
#include "KWIML/include/kwiml/int.h"
|
#include "cmThirdParty.h"
|
||||||
|
#ifdef CMAKE_USE_SYSTEM_KWIML
|
||||||
|
# include <kwiml/abi.h>
|
||||||
|
# include <kwiml/int.h>
|
||||||
|
#else
|
||||||
|
# include "KWIML/include/kwiml/abi.h"
|
||||||
|
# include "KWIML/include/kwiml/int.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -23,3 +23,4 @@ include_directories(
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(cmjsoncpp ${JSONCPP_SOURCES})
|
add_library(cmjsoncpp ${JSONCPP_SOURCES})
|
||||||
|
target_link_libraries(cmjsoncpp ${CMake_KWIML_LIBRARIES})
|
||||||
|
|
14
bootstrap
14
bootstrap
|
@ -450,6 +450,18 @@ cmake_error()
|
||||||
exit ${res}
|
exit ${res}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cmake_generate_file ()
|
||||||
|
{
|
||||||
|
OUTFILE="$1"
|
||||||
|
CONTENT="$2"
|
||||||
|
echo "$CONTENT" > "$OUTFILE.tmp"
|
||||||
|
if "${_diff}" "$OUTFILE.tmp" "$OUTFILE" > /dev/null 2> /dev/null ; then
|
||||||
|
rm -f "$OUTFILE.tmp"
|
||||||
|
else
|
||||||
|
mv -f "$OUTFILE.tmp" "$OUTFILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Replace KWSYS_NAMESPACE with cmsys
|
# Replace KWSYS_NAMESPACE with cmsys
|
||||||
cmake_replace_string ()
|
cmake_replace_string ()
|
||||||
{
|
{
|
||||||
|
@ -1270,6 +1282,8 @@ for a in ${KWSYS_FILES}; do
|
||||||
"${cmake_bootstrap_dir}/cmsys/${a}" KWSYS_NAMESPACE cmsys
|
"${cmake_bootstrap_dir}/cmsys/${a}" KWSYS_NAMESPACE cmsys
|
||||||
done
|
done
|
||||||
|
|
||||||
|
cmake_generate_file "${cmake_bootstrap_dir}/cmThirdParty.h" ""
|
||||||
|
|
||||||
# Generate Makefile
|
# Generate Makefile
|
||||||
dep="cmConfigure.h cmsys/*.hxx cmsys/*.h `cmake_escape \"${cmake_source_dir}\"`/Source/*.h"
|
dep="cmConfigure.h cmsys/*.hxx cmsys/*.h `cmake_escape \"${cmake_source_dir}\"`/Source/*.h"
|
||||||
objs=""
|
objs=""
|
||||||
|
|
Loading…
Reference in New Issue