Most Linux filesystems are case-sensitive (whereas on Windows this is not the case), so paths have been fixed to correspond to the case-sensitive versions (such as coop.h -> COOP.h, etc.), along with changing certain file names to comply to a uniform naming convention (capital starting letter), such as vector.h -> Vector.h
Amended COOP/CMakeLists.txt to include a compilation switch for GCC to omit the incompatible-pointer-type warnings (which there will be many) as the codebase passes functions around with differing signatures (i.e. passes a T (*)(U *) into something expecting T ()(void )`, etc.)
COOP/ClassDefMacros.h: Added a V_TABLE_TYPEDEF macro, because GCC token pasting semantics differ from MSVC and this is the easiest solution to make the particular pasting work, across both GCC and MSVC
Fixed numerous use-cases of __VA_ARGS__, as MSVC automatically "swallows" the comma when the list is empty, whereas GCC requires to use its extension ##, which seems to be implemented by MSVC as well.
COOP/DynamicMemoryManagement.c: Changed the casts for the allocation calls, will now work uniformly across C (as well as C++) compilers.
coop.h
->COOP.h
, etc.), along with changing certain file names to comply to a uniform naming convention (capital starting letter), such asvector.h
->Vector.h
COOP/CMakeLists.txt
to include a compilation switch for GCC to omit the incompatible-pointer-type warnings (which there will be many) as the codebase passes functions around with differing signatures (i.e. passes aT (*)(U *)
into something expecting T ()(void )`, etc.)COOP/ClassDefMacros.h
: Added aV_TABLE_TYPEDEF
macro, because GCC token pasting semantics differ from MSVC and this is the easiest solution to make the particular pasting work, across both GCC and MSVC__VA_ARGS__
, as MSVC automatically "swallows" the comma when the list is empty, whereas GCC requires to use its extension##
, which seems to be implemented by MSVC as well.COOP/DynamicMemoryManagement.c
: Changed the casts for the allocation calls, will now work uniformly across C (as well as C++) compilers.