diff options
Diffstat (limited to 'winbuild')
-rw-r--r-- | winbuild/build_tcc.bat | 14 | ||||
-rw-r--r-- | winbuild/calibrate/calibrate.vcxproj | 26 | ||||
-rw-r--r-- | winbuild/libsurvive/libsurvive.vcxproj | 38 | ||||
-rw-r--r-- | winbuild/libsurvive/libsurvive.vcxproj.filters | 26 | ||||
-rw-r--r-- | winbuild/tcc_stubs.c | 59 |
5 files changed, 129 insertions, 34 deletions
diff --git a/winbuild/build_tcc.bat b/winbuild/build_tcc.bat new file mode 100644 index 0000000..5be1361 --- /dev/null +++ b/winbuild/build_tcc.bat @@ -0,0 +1,14 @@ +@echo off + +set TCC=C:\tcc\tcc.exe +echo Be sure to have TinyCC installed to %TCC% (or change the TCC parameter.) + +set SR=..\src\ +set RD=..\redist\ +set SOURCES=%SR%ootx_decoder.c %SR%poser_charlesslow.c %SR%poser_daveortho.c %SR%poser_dummy.c %SR%survive.c %SR%survive_cal.c %SR%survive_config.c %SR%survive_data.c %SR%survive_driverman.c %SR%survive_process.c %SR%survive_vive.c +set REDIST=%RD%crc32.c %RD%linmath.c %RD%puff.c %RD%jsmn.c %RD%json_helpers.c %RD%symbol_enumerator.c +set EXEC=..\calibrate.c %RD%CNFGWinDriver.c %RD%os_generic.c %RD%CNFGFunctions.c +set CFLAGS=-DNOZLIB -DTCC -DWINDOWS -DHIDAPI -DWIN32 -DRUNTIME_SYMNUM -O0 -g -rdynamic -I..\redist -I..\include\libsurvive -I..\src -I. +set LDFLAGS=-lkernel32 -lgdi32 -luser32 -lsetupapi -ldbghelp +@echo on +%TCC% -v %CFLAGS% %SOURCES% %REDIST% %EXEC% %LDFLAGS% tcc_stubs.c %RD%hid-windows.c -o calibrate.exe diff --git a/winbuild/calibrate/calibrate.vcxproj b/winbuild/calibrate/calibrate.vcxproj index 13fce78..7a62c14 100644 --- a/winbuild/calibrate/calibrate.vcxproj +++ b/winbuild/calibrate/calibrate.vcxproj @@ -30,27 +30,27 @@ <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> @@ -96,7 +96,12 @@ <AdditionalLibraryDirectories> </AdditionalLibraryDirectories> <AdditionalDependencies>setupapi.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LinkTimeCodeGeneration>UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration> </Link> + <ProjectReference> + <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs> + </ProjectReference> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> @@ -114,7 +119,12 @@ <AdditionalDependencies>setupapi.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies> <ForceSymbolReferences> </ForceSymbolReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LinkTimeCodeGeneration>UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration> </Link> + <ProjectReference> + <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs> + </ProjectReference> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> @@ -134,7 +144,11 @@ <AdditionalLibraryDirectories> </AdditionalLibraryDirectories> <AdditionalDependencies>setupapi.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> </Link> + <ProjectReference> + <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs> + </ProjectReference> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ClCompile> @@ -154,7 +168,11 @@ <AdditionalLibraryDirectories> </AdditionalLibraryDirectories> <AdditionalDependencies>setupapi.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> </Link> + <ProjectReference> + <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs> + </ProjectReference> </ItemDefinitionGroup> <ItemGroup> <ClCompile Include="..\..\calibrate.c" /> diff --git a/winbuild/libsurvive/libsurvive.vcxproj b/winbuild/libsurvive/libsurvive.vcxproj index dc23907..643cff5 100644 --- a/winbuild/libsurvive/libsurvive.vcxproj +++ b/winbuild/libsurvive/libsurvive.vcxproj @@ -30,27 +30,27 @@ <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> @@ -77,12 +77,13 @@ </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> - <PreprocessorDefinitions>USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <AdditionalIncludeDirectories>..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>USE_DOUBLE;RUNTIME_SYMNUM;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WINDOWS;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\winbuild;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Windows</SubSystem> </Link> + <ProjectReference /> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> @@ -90,12 +91,13 @@ </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> - <PreprocessorDefinitions>USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <AdditionalIncludeDirectories>..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>USE_DOUBLE;RUNTIME_SYMNUM;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WINDOWS;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\winbuild;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Windows</SubSystem> </Link> + <ProjectReference /> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> @@ -105,14 +107,15 @@ <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <AdditionalIncludeDirectories>..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>USE_DOUBLE;RUNTIME_SYMNUM;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WINDOWS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\winbuild;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Windows</SubSystem> <EnableCOMDATFolding>true</EnableCOMDATFolding> <OptimizeReferences>true</OptimizeReferences> </Link> + <ProjectReference /> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ClCompile> @@ -122,28 +125,30 @@ <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <AdditionalIncludeDirectories>..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>USE_DOUBLE;RUNTIME_SYMNUM;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WINDOWS;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\winbuild;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Windows</SubSystem> <EnableCOMDATFolding>true</EnableCOMDATFolding> <OptimizeReferences>true</OptimizeReferences> </Link> + <ProjectReference /> </ItemDefinitionGroup> <ItemGroup> <Text Include="ReadMe.txt" /> </ItemGroup> <ItemGroup> + <ClCompile Include="..\..\redist\CNFGFunctions.c" /> + <ClCompile Include="..\..\redist\CNFGWinDriver.c" /> <ClCompile Include="..\..\redist\crc32.c" /> - <ClCompile Include="..\..\redist\DrawFunctions.c" /> + <ClCompile Include="..\..\redist\hid-windows.c" /> <ClCompile Include="..\..\redist\jsmn.c" /> <ClCompile Include="..\..\redist\json_helpers.c" /> <ClCompile Include="..\..\redist\linmath.c" /> <ClCompile Include="..\..\redist\os_generic.c" /> <ClCompile Include="..\..\redist\puff.c" /> <ClCompile Include="..\..\redist\symbol_enumerator.c" /> - <ClCompile Include="..\..\redist\WinDriver.c" /> <ClCompile Include="..\..\src\ootx_decoder.c" /> <ClCompile Include="..\..\src\poser_charlesslow.c" /> <ClCompile Include="..\..\src\poser_daveortho.c" /> @@ -156,14 +161,13 @@ <ClCompile Include="..\..\src\survive_process.c" /> <ClCompile Include="..\..\src\survive_usb.c" /> <ClCompile Include="..\..\src\survive_vive.c" /> - <ClCompile Include="..\..\windows\hid.c" /> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\include\libsurvive\poser.h" /> <ClInclude Include="..\..\include\libsurvive\survive.h" /> <ClInclude Include="..\..\include\libsurvive\survive_types.h" /> + <ClInclude Include="..\..\redist\CNFGFunctions.h" /> <ClInclude Include="..\..\redist\crc32.h" /> - <ClInclude Include="..\..\redist\DrawFunctions.h" /> <ClInclude Include="..\..\redist\jsmn.h" /> <ClInclude Include="..\..\redist\json_helpers.h" /> <ClInclude Include="..\..\redist\linmath.h" /> @@ -173,7 +177,7 @@ <ClInclude Include="..\..\src\survive_cal.h" /> <ClInclude Include="..\..\src\survive_config.h" /> <ClInclude Include="..\..\src\survive_internal.h" /> - <ClInclude Include="..\..\windows\hidapi.h" /> + <ClInclude Include="..\hidapi.h" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> diff --git a/winbuild/libsurvive/libsurvive.vcxproj.filters b/winbuild/libsurvive/libsurvive.vcxproj.filters index 370ce14..0bb9d1b 100644 --- a/winbuild/libsurvive/libsurvive.vcxproj.filters +++ b/winbuild/libsurvive/libsurvive.vcxproj.filters @@ -60,12 +60,6 @@ <ClCompile Include="..\..\redist\puff.c"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\..\redist\DrawFunctions.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\redist\WinDriver.c"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\..\redist\json_helpers.c"> <Filter>Source Files</Filter> </ClCompile> @@ -78,10 +72,16 @@ <ClCompile Include="..\..\redist\symbol_enumerator.c"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\..\windows\hid.c"> + <ClCompile Include="..\..\redist\linmath.c"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\..\redist\linmath.c"> + <ClCompile Include="..\..\redist\hid-windows.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\redist\CNFGFunctions.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\redist\CNFGWinDriver.c"> <Filter>Source Files</Filter> </ClCompile> </ItemGroup> @@ -110,9 +110,6 @@ <ClInclude Include="..\..\redist\os_generic.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\..\redist\DrawFunctions.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="..\..\redist\json_helpers.h"> <Filter>Header Files</Filter> </ClInclude> @@ -125,10 +122,13 @@ <ClInclude Include="..\..\redist\symbol_enumerator.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\..\windows\hidapi.h"> + <ClInclude Include="..\..\redist\linmath.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\..\redist\linmath.h"> + <ClInclude Include="..\hidapi.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\redist\CNFGFunctions.h"> <Filter>Header Files</Filter> </ClInclude> </ItemGroup> diff --git a/winbuild/tcc_stubs.c b/winbuild/tcc_stubs.c new file mode 100644 index 0000000..7872914 --- /dev/null +++ b/winbuild/tcc_stubs.c @@ -0,0 +1,59 @@ + +#include <_mingw.h> + +#define REMATH(x) double __cdecl x( double f ); float x##f(float v) { return x(v); } + +REMATH( acos ); +REMATH( cos ); +REMATH( sin ); +REMATH( sqrt ); +REMATH( asin ); + +double __cdecl strtod (const char* str, char** endptr); +float strtof( const char* str, char** endptr) +{ + return strtod( str, endptr ); +} + +double __cdecl atan2(double a, double b); +float atan2f(float a, float b) +{ + return atan2( a, b ); +} + +//From http://stackoverflow.com/questions/40159892/using-asprintf-on-windows +int __cdecl vsprintf_s( + char *buffer, + size_t numberOfElements, + const char *format, + va_list argptr +); + +int asprintf(char **strp, const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + int r = vasprintf(strp, fmt, ap); + va_end(ap); + return r; +} + +int vasprintf(char **strp, const char *fmt, va_list ap) { + // _vscprintf tells you how big the buffer needs to be + int len = _vscprintf(fmt, ap); + if (len == -1) { + return -1; + } + size_t size = (size_t)len + 1; + char *str = (char*)malloc(size); + if (!str) { + return -1; + } + // _vsprintf_s is the "secure" version of vsprintf + int r = vsprintf_s(str, len + 1, fmt, ap); + if (r == -1) { + free(str); + return -1; + } + *strp = str; + return r; +}
\ No newline at end of file |