该脚本有一些硬编码的相对路径。我希望它们与脚本位置相关。
该脚本需要更改当前目录,因为其他程序(cmake)需要它。
该脚本将一些(可能相对于调用者的)路径作为参数,并将它们传递给该程序,它们应该被去相关化。
问题是内联的:
#!/bin/sh
# First arg should be Release or Debug
# TODO test for that.
if test -n "$1"; then # BTW how to test whether $1 is Debug or Release?
BUILD_TYPE="$1"
else
BUILD_TYPE="Release"
fi
# Set install prefix to current directory, unless second argument is given.
if test -n "$2"; then
INSTALL_PREFIX="$2" # How to derelativize this path argument?
else
INSTALL_PREFIX=bin # How to make this path relative to script location?
fi
# Make build directory and do cmake, make, make install.
mkdir -p build/${BUILD_TYPE} && # How to make this path relative to script location?
cd build/${BUILD_TYPE} &&
cmake -D CMAKE_BUILD_TYPE=${BUILD_TYPE} \
-D CMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ # Possible relative to caller current directory.
../../ && # Relative to scrip position.
make -j4 &&
make install
这是一个常见问题还是我以非标准方式做某事?