update_vs_files.sh (4895B)
1 #!/bin/bash 2 3 # This file works with bash only 4 5 set -e 6 7 prj_files='libmicrohttpd2-files.vcxproj' 8 prj_filtrs='libmicrohttpd2-filters.vcxproj' 9 10 echo -n "Updating $prj_files and $prj_filtrs" 11 12 echo -ne '\xEF\xBB\xBF' > "$prj_files" # Output BOM 13 echo '<?xml version="1.0" encoding="utf-8"?> 14 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">' >> "$prj_files" 15 echo -ne '\xEF\xBB\xBF' > "$prj_filtrs" # Output BOM 16 echo '<?xml version="1.0" encoding="utf-8"?> 17 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 18 <ItemGroup> 19 <Filter Include="Source Files"> 20 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> 21 <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> 22 </Filter> 23 <Filter Include="Internal Headers"> 24 <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> 25 <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> 26 </Filter> 27 <Filter Include="Public Headers"> 28 <UniqueIdentifier>{ec88d605-3383-4989-8e25-bc8efa824720}</UniqueIdentifier> 29 <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> 30 </Filter> 31 <Filter Include="Resource Files"> 32 <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> 33 <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> 34 </Filter> 35 <Filter Include="Template Files"> 36 <UniqueIdentifier>{df5ad836-e372-437b-a0e3-299d3675d6b4}</UniqueIdentifier> 37 <Extensions>in</Extensions> 38 </Filter> 39 </ItemGroup>' >> "$prj_filtrs" 40 echo ' <ItemGroup> 41 <ClInclude Include="$(MhdSrc)include\microhttpd2.h" /> 42 <ClInclude Include="$(MhdSrc)include\microhttpd2_portability.h" /> 43 <ClInclude Include="$(MhdSrc)incl_priv\mhd_sys_options.h" /> 44 <ClInclude Include="$(MhdW32Common)mhd_config.h" />' >> "$prj_files" 45 echo ' <ItemGroup> 46 <ClInclude Include="$(MhdSrc)include\microhttpd2.h"> 47 <Filter>Public Headers</Filter> 48 </ClInclude> 49 <ClInclude Include="$(MhdSrc)include\microhttpd2_portability.h"> 50 <Filter>Public Headers</Filter> 51 </ClInclude> 52 </ItemGroup> 53 <ItemGroup> 54 <ClInclude Include="$(MhdSrc)incl_priv\mhd_sys_options.h"> 55 <Filter>Internal Headers</Filter> 56 </ClInclude> 57 <ClInclude Include="$(MhdW32Common)mhd_config.h"> 58 <Filter>Internal Headers</Filter> 59 </ClInclude>' >> "$prj_filtrs" 60 61 for src_file in "${@}"; do 62 case $src_file in 63 *.h ) 64 case $src_file in 65 md5_ext.?|sha*_ext.? ) ;; # skip files 66 tls_*.?|*_tls_*.? ) ;; # TLS is not supported for VS builds 67 * ) 68 echo ' <ClInclude Include="$(MhdSrc)mhd2\'"$src_file"'" />' >> "$prj_files" 69 echo ' <ClInclude Include="$(MhdSrc)mhd2\'"$src_file"'"> 70 <Filter>Internal Headers</Filter> 71 </ClInclude>' >> "$prj_filtrs" 72 esac 73 esac 74 echo -n '.' 75 done 76 77 echo ' </ItemGroup> 78 <ItemGroup>' >> "$prj_files" 79 echo ' </ItemGroup> 80 <ItemGroup>' >> "$prj_filtrs" 81 82 for src_file in "${@}"; do 83 case $src_file in 84 *.c ) 85 case $src_file in 86 md5_ext.?|sha*_ext.? ) ;; # skip files 87 tls_*.?|*_tls_*.? ) ;; # TLS is not supported for VS builds 88 * ) 89 echo ' <ClCompile Include="$(MhdSrc)mhd2\'"$src_file"'" />' >> "$prj_files" 90 echo ' <ClCompile Include="$(MhdSrc)mhd2\'"$src_file"'"> 91 <Filter>Source Files</Filter> 92 </ClCompile>' >> "$prj_filtrs" 93 esac 94 esac 95 echo -n '.' 96 done 97 98 echo ' </ItemGroup> 99 <ItemGroup> 100 <ResourceCompile Include="$(MhdW32Common)microhttpd2.rc" /> 101 </ItemGroup> 102 <ItemGroup> 103 <CustomBuild Include="$(MhdW32Common)microhttpd2.rc.in"> 104 <FileType>Document</FileType> 105 <Command>PowerShell.exe -Version 3.0 -NonInteractive -NoProfile -ExecutionPolicy Bypass -File "$(MhdW32Common)gen_dll_res.ps1" -BasePath "$(MhdW32Common)\"</Command> 106 <Message>Generating .dll description resource</Message> 107 <Outputs>$(MhdW32Common)microhttpd2.rc</Outputs> 108 <AdditionalInputs>$(MhdW32Common)gen_dll_res.ps1;$(MhdRoot)configure.ac</AdditionalInputs> 109 </CustomBuild> 110 </ItemGroup> 111 <ItemGroup> 112 <None Include="$(MhdSrc)mhd2\cpp.hint" /> 113 </ItemGroup> 114 </Project>' >> "$prj_files" 115 echo ' </ItemGroup> 116 <ItemGroup> 117 <ResourceCompile Include="$(MhdW32Common)microhttpd2.rc"> 118 <Filter>Resource Files</Filter> 119 </ResourceCompile> 120 </ItemGroup> 121 <ItemGroup> 122 <CustomBuild Include="$(MhdW32Common)microhttpd2.rc.in"> 123 <Filter>Template Files</Filter> 124 </CustomBuild> 125 </ItemGroup> 126 <ItemGroup> 127 <None Include="$(MhdSrc)mhd2\cpp.hint" /> 128 </ItemGroup> 129 </Project>' >> "$prj_filtrs" 130 131 echo " Done" 132 133 if command -v unix2dos >/dev/null 2>&1; then 134 unix2dos -e -v "$prj_files" "$prj_filtrs" 135 else 136 echo "No unix2dos command. Output files are left with LF line endings." 137 fi