Additional goes and woes in the VS projects to get it all to work together.

snprintf definition should go in config.h
If Win32 is enabled and Joliet no, it fails. Joliet should be enabled.
vsnprintf definition should go in config.h
lseek64 is defined as _lseeki64 in Windows SDK.
types.h should go to correct place for manually created unistd.h in VS
Macros with arguments are defined differently in GCC than in VS.
This commit is contained in:
2013-10-19 23:18:11 +01:00
parent c0d32b3e8c
commit f5f3c951bf
7 changed files with 71 additions and 28 deletions

View File

@@ -82,7 +82,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\MSVC;..\include;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -94,7 +94,7 @@
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>libcdiod.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>libcdiod.lib;msvcrtd.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(ProjectName)/$(OutDir)cd-info.exe</OutputFile>
<AdditionalLibraryDirectories>Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -106,7 +106,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\MSVC;..\include;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@@ -118,17 +118,15 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>libcdiod.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(ProjectName)/$(OutDir)cd-info.exe</OutputFile>
<AdditionalLibraryDirectories>Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>libcdiod.lib;msvcrtd.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(ProjectName)/$(OutDir)cd-info.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\MSVC;..\include;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader />
@@ -138,7 +136,7 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>libcdio.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>libcdio.lib;msvcrt.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(ProjectName)/$(OutDir)cd-info.exe</OutputFile>
<AdditionalLibraryDirectories>Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -151,7 +149,7 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\MSVC;..\include;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
@@ -162,11 +160,9 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>libcdio.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(ProjectName)/$(OutDir)cd-info.exe</OutputFile>
<AdditionalLibraryDirectories>Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>libcdio.lib;msvcrt.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(ProjectName)/$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -174,6 +170,9 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\cd-info.c" />
<ClCompile Include="..\src\cddb.c" />
<ClCompile Include="..\src\getopt.c" />
<ClCompile Include="..\src\getopt1.c" />
<ClCompile Include="..\src\util.c" />
</ItemGroup>
<ItemGroup>

View File

@@ -21,6 +21,15 @@
<ClCompile Include="..\src\util.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\getopt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\cddb.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\getopt1.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\src\util.h">

View File

@@ -59,7 +59,7 @@
/* Define 1 if you want ISO-9660 Joliet extension support. You must have also
libiconv installed to get Joliet extension support. */
#undef HAVE_JOLIET
#define HAVE_JOLIET 1
/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
#undef HAVE_LANGINFO_CODESET
@@ -92,7 +92,12 @@
#define HAVE_MEMSET 1
/* Define to 1 if you have the `snprintf' function. */
#if !defined(HAVE_SNPRINTF)
# if defined (_MSC_VER)
# define HAVE_SNPRINTF 1
# define snprintf _snprintf
# endif
#endif /*HAVE_SNPRINTF*/
/* Define 1 if you have Solaris CD-ROM support */
#undef HAVE_SOLARIS_CDROM
@@ -140,7 +145,12 @@
#undef HAVE_VCDINFO
/* Define to 1 if you have the `vsnprintf' function. */
#if !defined(HAVE_VSNPRINTF)
# if defined (_MSC_VER)
# define vsnprintf _vsnprintf
# define HAVE_VSNPRINTF 1
# endif
#endif /*HAVE_SNPRINTF*/
/* Define 1 if you have MinGW CD-ROM support */
#define HAVE_WIN32_CDROM 1
@@ -150,6 +160,8 @@
/* Windows SDK includes seek64 */
#define HAVE_LSEEK64 1
/* And names it differently */
#define lseek64 _lseeki64
#define _FILE_OFFSET_BITS 64
/* Define as const if the declaration of iconv() needs const. */

View File

@@ -86,6 +86,7 @@
</ClCompile>
<Lib>
<OutputFile>$(OutDir)$(ProjectName)d.lib</OutputFile>
<AdditionalDependencies>msvcrtd.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -102,6 +103,7 @@
</ClCompile>
<Lib>
<OutputFile>$(OutDir)$(ProjectName)d.lib</OutputFile>
<AdditionalDependencies>msvcrtd.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -113,6 +115,9 @@
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>msvcrt.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
@@ -124,6 +129,9 @@
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>msvcrt.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\lib\driver\MSWindows\aspi32.c" />

View File

@@ -54,8 +54,9 @@ typedef uint8_t ubyte;
to compensate for missing UNIX types is to include a custom
unistd.h that defines them. Such a file is provided with
the libcdio source, in the MSVC/missing directory */
// Natalia Portillo: the missing directory does not appear in the whole git history, I recreated it.
#if defined(_MSC_VER)
#include <unistd.h>
#include <cdio/msvc/unistd.h>
#endif
/* default HP/UX macros are broken */

View File

@@ -61,8 +61,6 @@
#include <cdio/mmc.h>
#include "cdio/logging.h"
#define snprintf _snprintf; // Windows prepends with underscore.
#if defined (_XBOX)
#define windows_error(loglevel,i_err) { \
cdio_log(loglevel, "Error: file %s: line %d (%s) %ld\n", \

View File

@@ -84,7 +84,16 @@
# define EXIT_INFO 100
#endif
#define DEBUG 1
//# define DEBUG 1
#ifdef _MSC_VER
# if DEBUG
# define dbg_print(level, s, args, ...) \
if (opts.debug_level >= level) \
report(stderr, "%s: "s, __func__ , ##args)
# else
# define dbg_print(level, s, args, ...)
# endif
#else
# if DEBUG
# define dbg_print(level, s, args...) \
if (opts.debug_level >= level) \
@@ -92,10 +101,17 @@
# else
# define dbg_print(level, s, args...)
# endif
#endif
#ifdef _MSC_VER
#define err_exit(fmt, args, ...) \
report(stderr, "%s: "fmt, program_name, ##args); \
myexit(p_cdio, EXIT_FAILURE)
#else
# define err_exit(fmt, args...) \
report(stderr, "%s: "fmt, program_name, ##args); \
myexit(p_cdio, EXIT_FAILURE)
#endif
typedef enum
{