Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- config=( "debug" "release" )
- link=( "static" "shared")
- runtime=( "static" "shared" )
- generate_bat()
- {
- project=$1
- project_path=$2
- project_buildline=$3
- for c in "${config[@]}"
- do
- for l in "${link[@]}"
- do
- for r in "${runtime[@]}"
- do
- build_shared='False'
- build_static='True'
- if [[ "$l" == "shared" ]]; then
- build_shared='True'
- build_static='False'
- fi
- cmake_runtime_link=''
- build_runtime_static='True'
- build_runtime_shared='False'
- if [[ "$r" == "shared" ]]; then
- cmake_runtime_link='DLL'
- build_runtime_static='False'
- build_runtime_shared='True'
- fi
- cmake_runtime_config=''
- if [[ "$c" == "debug" ]]; then
- cmake_runtime_config='Debug'
- fi
- cat <<EOD
- set PROJECT=$project
- set PROJECT_DIR="$project_path"
- set RUNTIME=$r
- set LINKAGE=$l
- set CONFIGURATION=$c
- set BUILD_SHARED_LIBS=$build_shared
- set BUILD_STATIC_LIBS=$build_static
- set BUILD_RUNTIME_STATIC=$build_runtime_static
- set BUILD_RUNTIME_SHARED=$build_runtime_shared
- set CMAKE_RUNTIME=MultiThreaded${cmake_runtime_config}${cmake_runtime_link}
- $project_buildline
- EOD
- done
- done
- done
- }
- generate_cygwin()
- {
- project=$1
- project_path=$2
- project_buildline=$3
- for c in "${config[@]}"
- do
- for l in "${link[@]}"
- do
- for r in "${runtime[@]}"
- do
- build_shared='no'
- build_static='yes'
- msvc_link=""
- if [[ "$l" == "shared" ]]; then
- build_shared='yes'
- build_static='no'
- msvc_link="/D_DLL"
- fi
- runtime_link='/MT'
- if [[ "$r" == "shared" ]]; then
- runtime_link='/MD'
- fi
- runtime_config=''
- DEFAULT_FLAGS="$DEFAULT_RELEASE_FLAGS"
- if [[ "$c" == "debug" ]]; then
- runtime_config='d'
- DEFAULT_FLAGS="$DEFAULT_DEBUG_FLAGS"
- fi
- cat <<EOD
- PROJECT=$project
- PROJECT_DIR="\$(cygpath -u '$project_path')"
- RUNTIME=$r
- LINKAGE=$l
- CONFIGURATION=$c
- BUILD_SHARED_LIBS=$build_shared
- BUILD_STATIC_LIBS=$build_static
- (cd \${PROJECT_DIR}; [ ! -f ./configure ] && ./autogen.sh)
- DEFAULT_FLAGS="$DEFAULT_FLAGS"
- RUNTIME_FLAG=${runtime_link}${runtime_config}
- CLFLAGS="\${RUNTIME_FLAG} \${DEFAULT_FLAGS}"
- LDFLAGS="-L/\${PROJECT}/lib"
- $project_buildline
- EOD
- done
- done
- done
- }
- HEADER=$(cat <<EOD
- rem set "CUDA_BIN_PATH=c:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.1/"
- rem set "CUDA_NVCC_EXECUTABLE=%CUDA_BIN_PATH%/bin/nvcc.exe"
- set CMAKE_GLOBAL_OPTIONS=-DCMAKE_POSITION_INDEPENDENT_CODE=On -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=On -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCUDA_TOOLKIT_ROOT_DIR="c:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.1/"
- set INSTALL_DIR="d:/work/env/native.env/vs.env/2019/"
- set CURRENT="%CD%"
- EOD
- )
- line=$(cat <<EOD
- cd %PROJECT_DIR% || exit
- b2 -j8 link=%LINKAGE% runtime-link=%RUNTIME% threading=multi variant=%CONFIGURATION% --layout=versioned --build-type=minimal --prefix=%INSTALL_DIR%\%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% --build-dir=%CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% architecture=x86 address-model=64 toolset=msvc-14.2 install
- cd %CURRENT% || exit
- EOD
- )
- echo "$HEADER" > build.boost.bat
- generate_bat 'boost' 'd:/work/env/boost/boost_1_75_0' "$line" >> build.boost.bat
- line=$(cat <<EOD
- cmake -G "Visual Studio 16 2019" -T host=x64 -A x64 -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS% -DCMAKE_MSVC_RUNTIME_LIBRARY=%CMAKE_RUNTIME% -DCMAKE_BUILD_TYPE=%CONFIGURATION% %CMAKE_GLOBAL_OPTIONS% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -B %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -S %PROJECT_DIR%
- cmake --build %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% --config %CONFIGURATION% --target install
- EOD
- )
- echo "$HEADER" > build.aquila.bat
- generate_bat 'aquila' 'D:/work/src/aquila' "$line" >> build.aquila.bat
- line=$(cat <<EOD
- cmake -G "Visual Studio 16 2019" -T host=x64,cuda=10.1 -A x64 -DUSE_SSE2_INSTRUCTIONS=1 -DUSE_SSE4_INSTRUCTIONS=1 -DUSE_AVX_INSTRUCTIONS=1 -DDLIB_NO_GUI_SUPPORT=Off -DDLIB_ISO_CPP_ONLY=Off -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS% -DCMAKE_MSVC_RUNTIME_LIBRARY=%CMAKE_RUNTIME% -DCMAKE_BUILD_TYPE=%CONFIGURATION% %CMAKE_GLOBAL_OPTIONS% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -B %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -S %PROJECT_DIR%
- cmake --build %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% --config %CONFIGURATION% --target install
- EOD
- )
- echo "$HEADER" > build.dlib.bat
- generate_bat 'dlib' 'D:/work/src/dlib' "$line" >> build.dlib.bat
- line=$(cat <<EOD
- cmake -G "Visual Studio 16 2019" -T host=x64 -A x64 -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS% -DCMAKE_MSVC_RUNTIME_LIBRARY=%CMAKE_RUNTIME% -DCMAKE_BUILD_TYPE=%CONFIGURATION% %CMAKE_GLOBAL_OPTIONS% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -B %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -S %PROJECT_DIR%
- cmake --build %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% --config %CONFIGURATION% --target install
- EOD
- )
- echo "$HEADER" > build.freetype.bat
- generate_bat 'freetype' 'D:/work/src/freetype' "$line" >> build.freetype.bat
- line=$(cat <<EOD
- cmake -G "Visual Studio 16 2019" -T host=x64 -A x64 -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS% -DCMAKE_MSVC_RUNTIME_LIBRARY=%CMAKE_RUNTIME% -DCMAKE_BUILD_TYPE=%CONFIGURATION% %CMAKE_GLOBAL_OPTIONS% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -B %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -S %PROJECT_DIR%
- cmake --build %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% --config %CONFIGURATION% --target install
- EOD
- )
- echo "$HEADER" > build.gtest.bat
- generate_bat 'gtest' 'D:/work/src/googletest' "$line" >> build.gtest.bat
- line=$(cat <<EOD
- cmake -G "Visual Studio 16 2019" -T host=x64 -A x64 -DJSONCPP_WITH_TESTS=Off -DJSONCPP_WITH_POST_BUILD_UNITTEST=Off -DBUILD_STATIC_LIBS=%BUILD_STATIC_LIBS% -DBUILD_OBJECT_LIBS=Off -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS% -DCMAKE_MSVC_RUNTIME_LIBRARY=%CMAKE_RUNTIME% -DCMAKE_BUILD_TYPE=%CONFIGURATION% %CMAKE_GLOBAL_OPTIONS% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -B %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -S %PROJECT_DIR%
- cmake --build %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% --config %CONFIGURATION% --target install
- EOD
- )
- echo "$HEADER" > build.jsoncpp.bat
- generate_bat 'jsoncpp' 'D:/work/src/jsoncpp' "$line" >> build.jsoncpp.bat
- line=$(cat <<EOD
- cmake -G "Visual Studio 16 2019" -T host=x64 -A x64 -DwxBUILD_SHARED=%BUILD_SHARED_LIBS% -DwxBUILD_USE_STATIC_RUNTIME=%BUILD_RUNTIME_STATIC% -DCMAKE_MSVC_RUNTIME_LIBRARY=%CMAKE_RUNTIME% -DCMAKE_BUILD_TYPE=%CONFIGURATION% %CMAKE_GLOBAL_OPTIONS% -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=Off -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -B %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -S %PROJECT_DIR%
- cmake --build %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% --config %CONFIGURATION% --target install
- EOD
- )
- echo "$HEADER" > build.wxWidgets.bat
- generate_bat 'wxWidgets' 'd:\work\env\wxWidgets\wxWidgets-3.2.1\' "$line" >> build.wxWidgets.bat
- line=$(cat <<EOD
- cmake -G "Visual Studio 16 2019" -T host=x64 -A x64 -DSPDLOG_BUILD_SHARED=%BUILD_SHARED_LIBS% -DSPDLOG_BUILD_EXAMPLE=Off -DSPDLOG_BUILD_EXAMPLE_HO=Off -DSPDLOG_INSTALL=On -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS% -DCMAKE_MSVC_RUNTIME_LIBRARY=%CMAKE_RUNTIME% -DCMAKE_BUILD_TYPE=%CONFIGURATION% %CMAKE_GLOBAL_OPTIONS% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -B %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -S %PROJECT_DIR%
- cmake --build %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% --config %CONFIGURATION% --target install
- EOD
- )
- echo "$HEADER" > build.spdlog.bat
- generate_bat 'spdlog' 'D:/work/src/spdlog' "$line" >> build.spdlog.bat
- line=$(cat <<EOD
- cmake -G "Visual Studio 16 2019" -T host=x64 -A x64 -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS% -DCMAKE_MSVC_RUNTIME_LIBRARY=%CMAKE_RUNTIME% -DCMAKE_BUILD_TYPE=%CONFIGURATION% %CMAKE_GLOBAL_OPTIONS% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -B %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% -S %PROJECT_DIR%
- cmake --build %CURRENT%/%LINKAGE%-%CONFIGURATION%-%RUNTIME%-runtime\%PROJECT% --config %CONFIGURATION% --target install
- EOD
- )
- echo "$HEADER" > build.zlib.bat
- generate_bat 'zlib' 'D:/work/src/zlib' "$line" >> build.zlib.bat
- HEADER=$(cat <<'EOD'
- #!/bin/bash
- # set -x
- export CC="compile cl /nologo"
- export CXX="compile cl /nologo"
- export CPPFLAGS="/D_WIN32_WINNT=_WIN32_WINNT_WIN7 /DWIN32 /D_WIN64 /D_UNICODE /D_CRT_SECURE_NO_WARNINGS "
- export LD="link"
- export NM="dumpbin -symbols"
- export STRIP=":"
- export AR="ar-lib lib"
- export RANLIB=":"
- export RC="windres --target=pe-x86-64"
- export WINDRES="windres --target=pe-x86-64"
- export GNULIB_SRCDIR="$(cygpath -u 'D:/work/src/gnulib')"
- DEFAULT_DEBUG_FLAGS='/Z7 /Od /D_DEBUG /RTC1'
- DEFAULT_RELEASE_FLAGS='/GL /Gy /Z7 /O2 /DNDEBUG /Oi'
- INSTALL_DIR="$(cygpath -u 'd:/work/env/native.env/vs.env/2019/')"
- EOD
- )
- line=$(cat <<'EOD'
- mkdir -p "${LINKAGE}-${CONFIGURATION}-${RUNTIME}-runtime/${PROJECT}"
- pushd "${LINKAGE}-${CONFIGURATION}-${RUNTIME}-runtime/${PROJECT}" || return
- "${PROJECT_DIR}"/configure --enable-relocatable --enable-static=${BUILD_STATIC_LIBS} --enable-shared=${BUILD_SHARED_LIBS} --host=x86_64-w64-mingw32 --prefix=/${PROJECT} CFLAGS="${CLFLAGS}" CXXFLAGS="${CLFLAGS}"
- make && make install DESTDIR="${INSTALL_DIR}/${LINKAGE}-${CONFIGURATION}-${RUNTIME}-runtime/" && make clean all
- popd || return
- EOD
- )
- echo "$HEADER" > build.libiconv.sh
- generate_cygwin 'iconv' 'D:/work/src/libiconv' "$line" >> build.libiconv.sh
- line=$(cat <<'EOD'
- mkdir -p "${LINKAGE}-${CONFIGURATION}-${RUNTIME}-runtime/${PROJECT}"
- pushd "${LINKAGE}-${CONFIGURATION}-${RUNTIME}-runtime/${PROJECT}" || return
- "${PROJECT_DIR}"/configure --enable-relocatable --enable-static=${BUILD_STATIC_LIBS} --enable-shared=${BUILD_SHARED_LIBS} --host=i686-w64-mingw32 --without-iconv --without-python --prefix=/${PROJECT} CFLAGS="${CLFLAGS}" CXXFLAGS="${CLFLAGS}"
- make && make install DESTDIR="${INSTALL_DIR}/${LINKAGE}-${CONFIGURATION}-${RUNTIME}-runtime/" && make clean all
- popd || return
- EOD
- )
- echo "$HEADER" > build.libxml2.sh
- generate_cygwin 'libxml2' 'D:/work/src/libxml2' "$line" >> build.libxml2.sh
Advertisement
Add Comment
Please, Sign In to add comment