From dd630075448f6aa45c0e51444365feb73701ebbd Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 16 Mar 2016 16:40:24 -0400 Subject: [PATCH 1/3] Utilities/Release: Rename scripts to match target platform The machine name we happen to use for the build is less informative than its platform. --- Tests/CMakeLists.txt | 8 ++++---- Utilities/Release/create-cmake-release.cmake | 8 ++++---- .../{dash2win64_cygwin.cmake => cygwin_release.cmake} | 1 - .../{magrathea_release.cmake => linux32_release.cmake} | 0 .../Release/{bigmac_release.cmake => osx_release.cmake} | 0 .../{dash3win7_release.cmake => win32_release.cmake} | 0 6 files changed, 8 insertions(+), 9 deletions(-) rename Utilities/Release/{dash2win64_cygwin.cmake => cygwin_release.cmake} (97%) rename Utilities/Release/{magrathea_release.cmake => linux32_release.cmake} (100%) rename Utilities/Release/{bigmac_release.cmake => osx_release.cmake} (100%) rename Utilities/Release/{dash3win7_release.cmake => win32_release.cmake} (100%) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 76ea5b48a..c14008fe9 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -684,12 +684,12 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release endif() endmacro() if(CMAKE_BUILD_NIGHTLY_RELEASES) - ADD_NIGHTLY_BUILD_TEST(CMakeNightlyWindows - dash3win7_release.cmake) + ADD_NIGHTLY_BUILD_TEST(CMakeNightlyWin32 + win32_release.cmake) ADD_NIGHTLY_BUILD_TEST(CMakeNightlyOSX - bigmac_release.cmake) + osx_release.cmake) ADD_NIGHTLY_BUILD_TEST(CMakeNightlyLinux32 - magrathea_release.cmake) + linux32_release.cmake) ADD_NIGHTLY_BUILD_TEST(CMakeNightlyLinux64 linux64_release.cmake) endif() diff --git a/Utilities/Release/create-cmake-release.cmake b/Utilities/Release/create-cmake-release.cmake index 403367bf7..f440519af 100644 --- a/Utilities/Release/create-cmake-release.cmake +++ b/Utilities/Release/create-cmake-release.cmake @@ -6,14 +6,14 @@ endif() file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/logs) set(RELEASE_SCRIPTS_BATCH_1 - dash3win7_release.cmake # Windows - bigmac_release.cmake # OS X x86_64 - magrathea_release.cmake # Linux + win32_release.cmake # Windows x86 + osx_release.cmake # OS X x86_64 + linux32_release.cmake # Linux x86 linux64_release.cmake # Linux x86_64 ) set(RELEASE_SCRIPTS_BATCH_2 - dash2win64_cygwin.cmake # Cygwin + cygwin_release.cmake # Cygwin x86 ) function(write_batch_shell_script filename) diff --git a/Utilities/Release/dash2win64_cygwin.cmake b/Utilities/Release/cygwin_release.cmake similarity index 97% rename from Utilities/Release/dash2win64_cygwin.cmake rename to Utilities/Release/cygwin_release.cmake index ca590ed1f..ca3e794b9 100644 --- a/Utilities/Release/dash2win64_cygwin.cmake +++ b/Utilities/Release/cygwin_release.cmake @@ -17,7 +17,6 @@ CMake_INSTALL_DEPENDENCIES:BOOL=ON ") set(CXX g++) set(CC gcc) -set(SCRIPT_NAME dash2win64cygwin) set(GIT_EXTRA "git config core.autocrlf false") get_filename_component(path "${CMAKE_CURRENT_LIST_FILE}" PATH) diff --git a/Utilities/Release/magrathea_release.cmake b/Utilities/Release/linux32_release.cmake similarity index 100% rename from Utilities/Release/magrathea_release.cmake rename to Utilities/Release/linux32_release.cmake diff --git a/Utilities/Release/bigmac_release.cmake b/Utilities/Release/osx_release.cmake similarity index 100% rename from Utilities/Release/bigmac_release.cmake rename to Utilities/Release/osx_release.cmake diff --git a/Utilities/Release/dash3win7_release.cmake b/Utilities/Release/win32_release.cmake similarity index 100% rename from Utilities/Release/dash3win7_release.cmake rename to Utilities/Release/win32_release.cmake From e903a9fc55a1a8d1e6cc681f8d2e98bb74566ec8 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 16 Mar 2016 16:42:39 -0400 Subject: [PATCH 2/3] Utilities/Release: Create a Windows 64-bit binary Compile with `-D_WIN32_WINNT=0x502` to use a WinXP-compatible API. Compile with `-D_USING_V110_SDK71_` to tell the VS standard library headers that we are building with a WinXP-compatible Windows SDK. Link executables with `-subsystem:console,5.02` to make them runnable on Windows XP 64-bit. Ideally `cmake-gui` should instead be linked with `-subsystem:windows,5.02` but with the Ninja and Makefile generators CMake adds `-subsystem:windows` after our `-subsystem:console,5.02` flag and the linker seems to interpret this combination as we need. --- Tests/CMakeLists.txt | 3 ++ Utilities/Release/create-cmake-release.cmake | 1 + Utilities/Release/win64_release.cmake | 29 ++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 Utilities/Release/win64_release.cmake diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index c14008fe9..8a256bf19 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -686,12 +686,15 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release if(CMAKE_BUILD_NIGHTLY_RELEASES) ADD_NIGHTLY_BUILD_TEST(CMakeNightlyWin32 win32_release.cmake) + ADD_NIGHTLY_BUILD_TEST(CMakeNightlyWin64 + win64_release.cmake) ADD_NIGHTLY_BUILD_TEST(CMakeNightlyOSX osx_release.cmake) ADD_NIGHTLY_BUILD_TEST(CMakeNightlyLinux32 linux32_release.cmake) ADD_NIGHTLY_BUILD_TEST(CMakeNightlyLinux64 linux64_release.cmake) + set_property(TEST CMakeNightlyWin64 PROPERTY DEPENDS CMakeNightlyWin32) endif() # add tests with more complex invocations diff --git a/Utilities/Release/create-cmake-release.cmake b/Utilities/Release/create-cmake-release.cmake index f440519af..f8844e9ef 100644 --- a/Utilities/Release/create-cmake-release.cmake +++ b/Utilities/Release/create-cmake-release.cmake @@ -14,6 +14,7 @@ set(RELEASE_SCRIPTS_BATCH_1 set(RELEASE_SCRIPTS_BATCH_2 cygwin_release.cmake # Cygwin x86 + win64_release.cmake # Windows x64 ) function(write_batch_shell_script filename) diff --git a/Utilities/Release/win64_release.cmake b/Utilities/Release/win64_release.cmake new file mode 100644 index 000000000..cc1f37fad --- /dev/null +++ b/Utilities/Release/win64_release.cmake @@ -0,0 +1,29 @@ +set(CMAKE_RELEASE_DIRECTORY "c:/msys64/home/dashboard/CMakeReleaseDirectory64") +set(CONFIGURE_WITH_CMAKE TRUE) +set(CMAKE_CONFIGURE_PATH "c:/Program\\ Files\\ \\(x86\\)/CMake/bin/cmake.exe") +set(PROCESSORS 8) +set(HOST dash3win7) +set(SCRIPT_NAME dash3win7x64) +set(RUN_LAUNCHER ~/rel/run) +set(CPACK_BINARY_GENERATORS "WIX ZIP") +set(CPACK_SOURCE_GENERATORS "") +set(MAKE_PROGRAM "ninja") +set(MAKE "${MAKE_PROGRAM} -j8") +set(INITIAL_CACHE "CMAKE_BUILD_TYPE:STRING=Release +CMAKE_DOC_DIR:STRING=doc/cmake +CMAKE_USE_OPENSSL:BOOL=OFF +CMAKE_SKIP_BOOTSTRAP_TEST:STRING=TRUE +CMAKE_Fortran_COMPILER:FILEPATH=FALSE +CMAKE_GENERATOR:INTERNAL=Ninja +BUILD_QtDialog:BOOL:=TRUE +CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL:BOOL=TRUE +CMake_INSTALL_DEPENDENCIES:BOOL=ON +CMAKE_EXE_LINKER_FLAGS:STRING=-machine:x64 -subsystem:console,5.02 +") +set(ppflags "-D_WIN32_WINNT=0x502 -D_USING_V110_SDK71_") +set(CFLAGS "${ppflags}") +set(CXXFLAGS "${ppflags}") +set(ENV ". ~/rel/env64") +get_filename_component(path "${CMAKE_CURRENT_LIST_FILE}" PATH) +set(GIT_EXTRA "git config core.autocrlf true") +include(${path}/release_cmake.cmake) From c089485d2131c7074c931b99044b8d00d498f414 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 17 Mar 2016 09:21:59 -0400 Subject: [PATCH 3/3] Utilities/Release: Skip spurious Qt5Autogen test for nightly binary This test fails spuriously too often and prevents the nightly binary from finishing. Simply skip it for the nightly binary to allow it to complete more regularly. --- Utilities/Release/win32_release.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Utilities/Release/win32_release.cmake b/Utilities/Release/win32_release.cmake index f25d63897..1d3ec8608 100644 --- a/Utilities/Release/win32_release.cmake +++ b/Utilities/Release/win32_release.cmake @@ -25,4 +25,8 @@ set(CXXFLAGS "${ppflags}") set(ENV ". ~/rel/env") get_filename_component(path "${CMAKE_CURRENT_LIST_FILE}" PATH) set(GIT_EXTRA "git config core.autocrlf true") +if(CMAKE_CREATE_VERSION STREQUAL "nightly") + # Some tests fail spuriously too often. + set(EXTRA_CTEST_ARGS "-E Qt5Autogen") +endif() include(${path}/release_cmake.cmake)