yosys/misc/create_vcxsrc.sh

76 lines
2.8 KiB
Bash
Raw Permalink Normal View History

2014-10-18 15:17:33 +02:00
#!/bin/bash
set -ex
vcxsrc="$1-$2"
yosysver="$2"
gitsha="$3"
2014-10-18 15:17:33 +02:00
rm -rf YosysVS-Tpl-v2.zip YosysVS
wget https://github.com/YosysHQ/yosys/releases/download/resources/YosysVS-Tpl-v2.zip
wget https://github.com/YosysHQ/yosys/releases/download/resources/zlib-1.2.11.tar.gz
2014-10-18 15:17:33 +02:00
unzip YosysVS-Tpl-v2.zip
rm -f YosysVS-Tpl-v2.zip
2022-02-02 11:46:06 +01:00
tar xvfz zlib-1.2.11.tar.gz
2014-10-18 15:17:33 +02:00
2022-02-02 11:46:06 +01:00
mv YosysVS "$vcxsrc"
mkdir -p "$vcxsrc"/yosys
mkdir -p "$vcxsrc"/yosys/libs/zlib
mv zlib-1.2.11/* "$vcxsrc"/yosys/libs/zlib/.
rm -rf zlib-1.2.11
pushd "$vcxsrc"/yosys
ls libs/zlib/*.c | sed 's,.*:,,; s,//*,/,g; s,/[^/]*/\.\./,/,g; y, \\,\n\n,;' | grep '^[^/]' >> ../../srcfiles.txt
2025-07-16 01:52:46 +02:00
if [ -f "/usr/include/FlexLexer.h" ] ; then
mkdir -p libs/flex
cp /usr/include/FlexLexer.h libs/flex/FlexLexer.h
ls libs/flex/*.h >> ../../srcfiles.txt
fi
2022-02-02 11:46:06 +01:00
popd
2014-10-18 15:17:33 +02:00
{
n=$(grep -B999 '<ItemGroup>' "$vcxsrc"/YosysVS/YosysVS.vcxproj | wc -l)
head -n$n "$vcxsrc"/YosysVS/YosysVS.vcxproj
egrep '\.(h|hh|hpp|inc)$' srcfiles.txt | sed 's,.*,<ClInclude Include="../yosys/&" />,'
egrep -v '\.(h|hh|hpp|inc)$' srcfiles.txt | sed 's,.*,<ClCompile Include="../yosys/&" />,'
echo '<ClCompile Include="../yosys/kernel/version.cc" />'
2014-10-18 15:17:33 +02:00
tail -n +$((n+1)) "$vcxsrc"/YosysVS/YosysVS.vcxproj
} > "$vcxsrc"/YosysVS/YosysVS.vcxproj.new
2024-06-17 17:29:20 +02:00
sed -i 's,</AdditionalIncludeDirectories>,</AdditionalIncludeDirectories>\n <LanguageStandard>stdcpp17</LanguageStandard>\n <AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>,g' "$vcxsrc"/YosysVS/YosysVS.vcxproj.new
sed -i 's,<PreprocessorDefinitions>,<PreprocessorDefinitions>YOSYS_ENABLE_THREADS;,g' "$vcxsrc"/YosysVS/YosysVS.vcxproj.new
2025-07-16 03:48:31 +02:00
if [ -f "/usr/include/FlexLexer.h" ] ; then
sed -i 's,</AdditionalIncludeDirectories>,;..\\yosys\\libs\\flex</AdditionalIncludeDirectories>,g' "$vcxsrc"/YosysVS/YosysVS.vcxproj.new
fi
2014-10-18 15:17:33 +02:00
mv "$vcxsrc"/YosysVS/YosysVS.vcxproj.new "$vcxsrc"/YosysVS/YosysVS.vcxproj
mkdir -p "$vcxsrc"/yosys
tar -cf - -T srcfiles.txt | tar -xf - -C "$vcxsrc"/yosys
cp -r share "$vcxsrc"/
2014-10-18 15:17:33 +02:00
echo "namespace Yosys { extern const char *yosys_version_str; const char *yosys_version_str=\"Yosys" \
"$yosysver (git sha1 $gitsha, Visual Studio)\"; }" > "$vcxsrc"/yosys/kernel/version.cc
2014-10-18 15:17:33 +02:00
cat > "$vcxsrc"/readme-git.txt << EOT
Want to use a git working copy for the yosys source code?
2014-10-18 15:17:33 +02:00
Open "Git Bash" in this directory and run:
mv yosys yosys.bak
git clone https://github.com/YosysHQ/yosys.git yosys
2014-10-18 15:17:33 +02:00
cd yosys
git checkout -B main $(git rev-parse HEAD | cut -c1-10)
2014-10-18 15:17:33 +02:00
unzip ../genfiles.zip
EOT
cat > "$vcxsrc"/readme-abc.txt << EOT
Yosys is using "ABC" for gate-level optimizations and technology
mapping. Download yosys-win32-mxebin-$yosysver.zip and copy the
following files from it into this directory:
pthreadVC2.dll
yosys-abc.exe
EOT
sed -i 's/$/\r/; s/\r\r*/\r/g;' "$vcxsrc"/YosysVS/YosysVS.vcxproj "$vcxsrc"/readme-git.txt "$vcxsrc"/readme-abc.txt
2014-10-18 15:17:33 +02:00