summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-09-30 12:07:26 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2016-09-30 12:07:26 (GMT)
commit9c932109a29afbaf10aa9dd9fa7b2f421f8db6fd (patch)
treeda0ba5bdda7c5288c9f358a05c3a96787fab2984
parentb90aa96c783e0e581517012605c34d746916d415 (diff)
parent957e72c0c5503130157f9ae1579860d1fd9caefa (diff)
downloadCMake-9c932109a29afbaf10aa9dd9fa7b2f421f8db6fd.zip
CMake-9c932109a29afbaf10aa9dd9fa7b2f421f8db6fd.tar.gz
CMake-9c932109a29afbaf10aa9dd9fa7b2f421f8db6fd.tar.bz2
Merge topic 'cmake-server-enable-more'
957e72c0 Utilities/Release: Use python 3 for server mode test on Linux binary 64934f20 Utilities/Release: Enable server mode in all binaries ec0bf638 bootstrap: Add options to enable/disable server mode explicitly 523f8ec8 server-mode: Add option to enable/disable test case explicitly 6b97a5ef server-mode: Add option to enable/disable the mode explicitly a8334961 server-mode: Rename variable CMake_{HAVE => ENABLE}_SERVER_MODE 97b6e17c server-mode: Enable from bootstrapped CMake build
-rw-r--r--CMakeLists.txt27
-rw-r--r--Source/CMakeLists.txt2
-rw-r--r--Tests/CMakeLists.txt2
-rw-r--r--Utilities/Release/linux64_release.cmake2
-rw-r--r--Utilities/Release/osx_release.cmake1
-rw-r--r--Utilities/Release/win32_release.cmake1
-rw-r--r--Utilities/Release/win64_release.cmake1
-rwxr-xr-xbootstrap11
8 files changed, 38 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8e1aaf5..309e224 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -695,15 +695,28 @@ endif()
CMAKE_SETUP_TESTING()
# Check whether to build server mode or not:
-set(CMake_HAVE_SERVER_MODE 0)
-if(NOT CMake_TEST_EXTERNAL_CMAKE AND NOT CMAKE_BOOTSTRAP AND CMAKE_USE_LIBUV)
- list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_auto_type CMake_HAVE_CXX_AUTO_TYPE)
- list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_range_for CMake_HAVE_CXX_RANGE_FOR)
- if(CMake_HAVE_CXX_AUTO_TYPE AND CMake_HAVE_CXX_RANGE_FOR)
- if(CMake_HAVE_CXX_MAKE_UNIQUE)
- set(CMake_HAVE_SERVER_MODE 1)
+if(NOT CMake_TEST_EXTERNAL_CMAKE)
+ if(NOT DEFINED CMake_ENABLE_SERVER_MODE)
+ list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_auto_type CMake_HAVE_CXX_AUTO_TYPE)
+ list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_range_for CMake_HAVE_CXX_RANGE_FOR)
+ if(CMAKE_USE_LIBUV
+ AND CMake_HAVE_CXX_AUTO_TYPE
+ AND CMake_HAVE_CXX_MAKE_UNIQUE
+ AND CMake_HAVE_CXX_RANGE_FOR
+ )
+ set(CMake_ENABLE_SERVER_MODE 1)
+ else()
+ set(CMake_ENABLE_SERVER_MODE 0)
endif()
endif()
+ if(CMake_ENABLE_SERVER_MODE AND NOT CMAKE_USE_LIBUV)
+ message(FATAL_ERROR "The server mode requires libuv!")
+ endif()
+else()
+ set(CMake_ENABLE_SERVER_MODE 0)
+endif()
+if(NOT DEFINED CMake_TEST_SERVER_MODE)
+ set(CMake_TEST_SERVER_MODE ${CMake_ENABLE_SERVER_MODE})
endif()
if(NOT CMake_TEST_EXTERNAL_CMAKE)
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index b8f02e3..2641381 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -778,7 +778,7 @@ add_executable(cmake cmakemain.cxx cmcmd.cxx cmcmd.h ${MANIFEST_FILE})
list(APPEND _tools cmake)
target_link_libraries(cmake CMakeLib)
-if(CMake_HAVE_SERVER_MODE)
+if(CMake_ENABLE_SERVER_MODE)
add_library(CMakeServerLib
cmServer.cxx cmServer.h
cmServerConnection.cxx cmServerConnection.h
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index c056fb8..31ed2eb 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -2723,7 +2723,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
ADD_TEST_MACRO(CMakeCommands.target_compile_definitions target_compile_definitions)
ADD_TEST_MACRO(CMakeCommands.target_compile_options target_compile_options)
- if(CMake_HAVE_SERVER_MODE)
+ if(CMake_TEST_SERVER_MODE)
# The cmake server-mode test requires python for a simple client.
find_package(PythonInterp QUIET)
if(PYTHON_EXECUTABLE)
diff --git a/Utilities/Release/linux64_release.cmake b/Utilities/Release/linux64_release.cmake
index e7e154e..b72fc12 100644
--- a/Utilities/Release/linux64_release.cmake
+++ b/Utilities/Release/linux64_release.cmake
@@ -31,8 +31,10 @@ CMAKE_USE_OPENSSL:BOOL=ON
OPENSSL_CRYPTO_LIBRARY:FILEPATH=/home/kitware/openssl-1.0.2h/lib/libcrypto.a
OPENSSL_INCLUDE_DIR:PATH=/home/kitware/openssl-1.0.2h/include
OPENSSL_SSL_LIBRARY:FILEPATH=/home/kitware/openssl-1.0.2h/lib/libssl.a
+PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
CPACK_SYSTEM_NAME:STRING=Linux-x86_64
BUILD_QtDialog:BOOL:=TRUE
+CMake_ENABLE_SERVER_MODE:BOOL=TRUE
CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL:STRING=3
CMake_INSTALL_DEPENDENCIES:BOOL=ON
CMAKE_PREFIX_PATH:STRING=${qt_prefix}
diff --git a/Utilities/Release/osx_release.cmake b/Utilities/Release/osx_release.cmake
index 12b12d7..27c820f 100644
--- a/Utilities/Release/osx_release.cmake
+++ b/Utilities/Release/osx_release.cmake
@@ -20,6 +20,7 @@ CMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7
CMAKE_SKIP_BOOTSTRAP_TEST:STRING=TRUE
CPACK_SYSTEM_NAME:STRING=Darwin-x86_64
BUILD_QtDialog:BOOL=TRUE
+CMake_ENABLE_SERVER_MODE:BOOL=TRUE
CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL:STRING=3
CMake_INSTALL_DEPENDENCIES:BOOL=ON
CMAKE_SKIP_RPATH:BOOL=TRUE
diff --git a/Utilities/Release/win32_release.cmake b/Utilities/Release/win32_release.cmake
index f54a4ca..df9fe27 100644
--- a/Utilities/Release/win32_release.cmake
+++ b/Utilities/Release/win32_release.cmake
@@ -15,6 +15,7 @@ CMAKE_SKIP_BOOTSTRAP_TEST:STRING=TRUE
CMAKE_Fortran_COMPILER:FILEPATH=FALSE
CMAKE_GENERATOR:INTERNAL=Ninja
BUILD_QtDialog:BOOL:=TRUE
+CMake_ENABLE_SERVER_MODE:BOOL=TRUE
CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL:STRING=3
CMake_INSTALL_DEPENDENCIES:BOOL=ON
CMAKE_EXE_LINKER_FLAGS:STRING=-machine:x86 -subsystem:console,5.01
diff --git a/Utilities/Release/win64_release.cmake b/Utilities/Release/win64_release.cmake
index bd2690f..ab52d79 100644
--- a/Utilities/Release/win64_release.cmake
+++ b/Utilities/Release/win64_release.cmake
@@ -16,6 +16,7 @@ CMAKE_SKIP_BOOTSTRAP_TEST:STRING=TRUE
CMAKE_Fortran_COMPILER:FILEPATH=FALSE
CMAKE_GENERATOR:INTERNAL=Ninja
BUILD_QtDialog:BOOL:=TRUE
+CMake_ENABLE_SERVER_MODE:BOOL=TRUE
CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL:STRING=3
CMake_INSTALL_DEPENDENCIES:BOOL=ON
CMAKE_EXE_LINKER_FLAGS:STRING=-machine:x64 -subsystem:console,5.02
diff --git a/bootstrap b/bootstrap
index e22570e..889cc33 100755
--- a/bootstrap
+++ b/bootstrap
@@ -65,6 +65,7 @@ cmake_init_file=""
cmake_bootstrap_system_libs=""
cmake_bootstrap_qt_gui=""
cmake_bootstrap_qt_qmake=""
+cmake_bootstrap_server=""
cmake_sphinx_man=""
cmake_sphinx_html=""
cmake_sphinx_qthelp=""
@@ -407,6 +408,9 @@ Configuration:
--no-qt-gui do not build the Qt-based GUI (default)
--qt-qmake=<qmake> use <qmake> as the qmake executable to find Qt
+ --server enable the server mode (default if supported)
+ --no-server disable the server mode
+
--sphinx-man build man pages with Sphinx
--sphinx-html build html help with Sphinx
--sphinx-qthelp build qch help with Sphinx
@@ -641,6 +645,8 @@ while test $# != 0; do
--qt-gui) cmake_bootstrap_qt_gui="1" ;;
--no-qt-gui) cmake_bootstrap_qt_gui="0" ;;
--qt-qmake=*) cmake_bootstrap_qt_qmake=`cmake_arg "$1"` ;;
+ --server) cmake_bootstrap_server="1" ;;
+ --no-server) cmake_bootstrap_server="0" ;;
--sphinx-man) cmake_sphinx_man="1" ;;
--sphinx-html) cmake_sphinx_html="1" ;;
--sphinx-qthelp) cmake_sphinx_qthelp="1" ;;
@@ -1401,6 +1407,11 @@ if [ "x${cmake_bootstrap_qt_qmake}" != "x" ]; then
set (QT_QMAKE_EXECUTABLE "'"${cmake_bootstrap_qt_qmake}"'" CACHE FILEPATH "Location of Qt qmake" FORCE)
' >> "${cmake_bootstrap_dir}/InitialCacheFlags.cmake"
fi
+if [ "x${cmake_bootstrap_server}" != "x" ]; then
+ echo '
+set (CMake_ENABLE_SERVER_MODE '"${cmake_bootstrap_server}"' CACHE BOOL "Enable server mode" FORCE)
+' >> "${cmake_bootstrap_dir}/InitialCacheFlags.cmake"
+fi
if [ "x${cmake_sphinx_man}" != "x" ]; then
echo '
set (SPHINX_MAN "'"${cmake_sphinx_man}"'" CACHE BOOL "Build man pages with Sphinx" FORCE)