From 3a902ad20afd385955e0d094d00bf7f385b1c3f0 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Fri, 11 Mar 2022 20:54:07 -0500 Subject: CMake wrapper for Windows --- README-maintainer | 4 ++++ cmake-win | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100755 cmake-win diff --git a/README-maintainer b/README-maintainer index e21e473d..5108cf83 100644 --- a/README-maintainer +++ b/README-maintainer @@ -27,6 +27,10 @@ CFLAGS="-fsanitize=address -fsanitize=undefined" \ CC=clang CXX=clang++ \ cmake -DMAINTAINER_MODE=1 -DBUILD_SHARED_LIBS=0 -DCMAKE_BUILD_TYPE=Debug .. +Windows: + +../cmake-win {mingw|msvc} maint + VERSIONS * The version number on the main branch is whatever the version would diff --git a/cmake-win b/cmake-win new file mode 100755 index 00000000..3a5278ef --- /dev/null +++ b/cmake-win @@ -0,0 +1,35 @@ +#!/bin/bash +set -e +whoami=$(basename $0) +tool=$1 +mode=$2 + +dir=$(realpath --relative-to . $(dirname $0)) +if [ "$dir" = "." ]; then + echo 1>&2 "$whoami: run from other than the source directory." + exit 2 +fi +declare -a args +case $tool in + msvc) + args=(-DCMAKE_BUILD_TYPE=RelWithDebInfo) + if cl 2>&1 | grep -q 'for x86'; then + args=("${args[@]}" -A win32) + fi + ;; + mingw) + args=(-G 'MSYS Makefiles' -DCMAKE_BUILD_TYPE=RelWithDebInfo) + ;; + *) + echo 1>&2 "Usage: $whoami {msvc|mingw}" + exit 2 + ;; +esac +if [ "$mode" = "maint" ]; then + args=("${args[@]}" -DMAINTAINER_MODE=1 -DBUILD_DOC=0 -DBUILD_STATIC_LIBS=0) +elif [ "$mode" = "ci" ]; then + args=("${args[@]}" -DCI_MODE=1 -DINSTALL_MANUAL=1) +fi + +set -x +cmake "${args[@]}" $dir -- cgit v1.2.3-70-g09d2