]>
Commit | Line | Data |
---|---|---|
f67539c2 TL |
1 | #!/bin/bash |
2 | ||
3 | set -euo pipefail | |
4 | ||
5 | cd "$(dirname "$0")/.." | |
6 | ||
7 | if ! [ -e "tools/create_standalone.sh" ]; then | |
8 | echo "Could not change to repo root" | |
9 | exit 1 | |
10 | fi | |
11 | ||
12 | targetFolder="${1:-nowide_standalone}" | |
13 | ||
14 | # If target folder exists fail, unless it is the default in which case it is removed | |
15 | if [ -e "$targetFolder" ]; then | |
16 | if [[ "$targetFolder" == "nowide_standalone" ]]; then | |
17 | rm -r "$targetFolder" | |
18 | else | |
19 | echo "Target folder $targetFolder exists" | |
20 | exit 1 | |
21 | fi | |
22 | fi | |
23 | ||
24 | mkdir -p "$targetFolder"/include | |
25 | ||
26 | cp -r include/boost/nowide "$targetFolder"/include | |
27 | cp -r src test cmake CMakeLists.txt LICENSE "$targetFolder" | |
28 | cp standalone/*.hpp "$targetFolder"/include/nowide | |
29 | mv "$targetFolder/cmake/BoostAddOptions.cmake" "$targetFolder/cmake/NowideAddOptions.cmake" | |
30 | mv "$targetFolder/cmake/BoostAddWarnings.cmake" "$targetFolder/cmake/NowideAddWarnings.cmake" | |
31 | find "$targetFolder" -name 'Jamfile*' -delete | |
32 | ||
33 | SOURCES=$(find "$targetFolder" -name '*.hpp' -or -name '*.cpp') | |
34 | SOURCES_NO_BOOST=$(echo "$SOURCES" | grep -v 'filesystem.hpp') | |
35 | ||
36 | sed 's/BOOST_NOWIDE_/NOWIDE_/g' -i $SOURCES | |
37 | sed 's/BOOST_/NOWIDE_/g' -i $SOURCES | |
38 | sed 's/boost::nowide/nowide/g' -i $SOURCES | |
39 | sed 's/boost::chrono/std::chrono/g' -i $SOURCES | |
40 | sed 's/boost::milli/std::milli/g' -i $SOURCES | |
41 | sed 's/boost::/nowide::/g' -i $SOURCES_NO_BOOST | |
42 | sed '/namespace boost/d' -i $SOURCES | |
43 | sed 's/<boost\/chrono.hpp/<chrono/g' -i $SOURCES | |
44 | sed 's/<boost\/nowide\//<nowide\//g' -i $SOURCES | |
45 | sed 's/<boost\//<nowide\//g' -i $SOURCES_NO_BOOST | |
46 | sed '/config\/abi_/d' -i $SOURCES | |
47 | ||
48 | CMLs=$(find "$targetFolder" -name 'CMakeLists.txt' -or -name '*.cmake') | |
49 | ||
50 | sed 's/ BOOST_ALL_NO_LIB//' -i $CMLs | |
51 | sed 's/BOOST_NOWIDE_/NOWIDE_/g' -i $CMLs | |
52 | sed 's/Boost_NOWIDE_/NOWIDE_/g' -i $CMLs | |
53 | sed 's/boost_nowide/nowide/g' -i $CMLs | |
54 | sed 's/boost_/nowide_/g' -i $CMLs | |
55 | sed 's/Boost::nowide/nowide::nowide/g' -i $CMLs | |
56 | sed 's/Boost/Nowide/g' -i $CMLs | |
57 | sed 's/ OR BOOST_SUPERPROJECT_SOURCE_DIR//' -i $CMLs | |
58 | ||
59 | sed '/PUBLIC BOOST_NOWIDE_NO_LIB)/d' -i "$targetFolder/CMakeLists.txt" | |
60 | sed '/^if(BOOST_SUPERPROJECT_SOURCE_DIR)/,/^endif/d' -i "$targetFolder/CMakeLists.txt" | |
61 | sed '/add_warnings/atarget_compile_features(nowide PUBLIC cxx_std_11)' -i "$targetFolder/CMakeLists.txt" | |
62 | sed 's/NAMESPACE Nowide CONFIG_FILE.*$/NAMESPACE nowide)/' -i "$targetFolder/CMakeLists.txt" | |
63 | ||
64 | sed '/if(NOT BOOST_SUPERPROJECT_SOURCE_DIR)/,/endif/d' -i "$targetFolder/test/CMakeLists.txt" | |
65 | sed 's/ LIBRARIES Nowide::chrono//' -i "$targetFolder/test/CMakeLists.txt" | |
66 | sed '/Nowide::filesystem/d' -i "$targetFolder/test/CMakeLists.txt" |