Browse Source

gravity_config.h - platform specific configuration. removes requiring public include dependency on gravity_visualstudio/unistd.h

foobit 5 years ago
parent
commit
f96dc7a996

+ 0 - 5
CMakeLists.txt

@@ -41,9 +41,6 @@ if(MSVC)
     # MSVC does not like static inlining
     # MSVC does not like static inlining
     list(APPEND GRAVITY_PRIVATE_DEFINITIONS "inline=")
     list(APPEND GRAVITY_PRIVATE_DEFINITIONS "inline=")
 
 
-    # custom unistd.h for MSVC
-    list(APPEND GRAVITY_PRIVATE_INCLUDES "gravity_visualstudio")
-
     # warning C4068: unknown pragma
     # warning C4068: unknown pragma
     list(APPEND GRAVITY_PRIVATE_COMPILE_OPTIONS "/wd4068")
     list(APPEND GRAVITY_PRIVATE_COMPILE_OPTIONS "/wd4068")
 
 
@@ -85,7 +82,6 @@ foreach(target ${GRAVITY_TARGETS})
     target_link_libraries(${target} PRIVATE ${GRAVITY_DEPENDENT_LIBS})
     target_link_libraries(${target} PRIVATE ${GRAVITY_DEPENDENT_LIBS})
     target_compile_definitions(${target} PRIVATE ${GRAVITY_PRIVATE_DEFINITIONS})
     target_compile_definitions(${target} PRIVATE ${GRAVITY_PRIVATE_DEFINITIONS})
     target_compile_options(${target} PRIVATE ${GRAVITY_PRIVATE_COMPILE_OPTIONS})
     target_compile_options(${target} PRIVATE ${GRAVITY_PRIVATE_COMPILE_OPTIONS})
-    target_include_directories(${target} PRIVATE ${GRAVITY_PRIVATE_INCLUDES})
     target_include_directories(${target} PUBLIC ${GRAVITY_INCLUDE_DIR})
     target_include_directories(${target} PUBLIC ${GRAVITY_INCLUDE_DIR})
 
 
 endforeach()
 endforeach()
@@ -94,7 +90,6 @@ endforeach()
 
 
 add_executable(gravity ${GRAVITY_SRC})
 add_executable(gravity ${GRAVITY_SRC})
 target_link_libraries(gravity gravityapi_s)
 target_link_libraries(gravity gravityapi_s)
-target_include_directories(gravity PRIVATE ${GRAVITY_PRIVATE_INCLUDES})
 target_include_directories(gravity PUBLIC ${GRAVITY_INCLUDE_DIR})
 target_include_directories(gravity PUBLIC ${GRAVITY_INCLUDE_DIR})
 
 
 # ----------------------------------------------------------------
 # ----------------------------------------------------------------

+ 1 - 1
gravity_visualstudio/gravity.vcxproj

@@ -46,10 +46,10 @@
     <ClInclude Include="..\src\shared\gravity_memory.h" />
     <ClInclude Include="..\src\shared\gravity_memory.h" />
     <ClInclude Include="..\src\shared\gravity_opcodes.h" />
     <ClInclude Include="..\src\shared\gravity_opcodes.h" />
     <ClInclude Include="..\src\shared\gravity_value.h" />
     <ClInclude Include="..\src\shared\gravity_value.h" />
+    <ClInclude Include="..\src\shared\gravity_config.h" />
     <ClInclude Include="..\src\utils\gravity_debug.h" />
     <ClInclude Include="..\src\utils\gravity_debug.h" />
     <ClInclude Include="..\src\utils\gravity_json.h" />
     <ClInclude Include="..\src\utils\gravity_json.h" />
     <ClInclude Include="..\src\utils\gravity_utils.h" />
     <ClInclude Include="..\src\utils\gravity_utils.h" />
-    <ClInclude Include="unistd.h" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\src\compiler\gravity_ast.c" />
     <ClCompile Include="..\src\compiler\gravity_ast.c" />

+ 3 - 3
gravity_visualstudio/gravity.vcxproj.filters

@@ -36,9 +36,6 @@
     </Filter>
     </Filter>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClInclude Include="unistd.h">
-      <Filter>include</Filter>
-    </ClInclude>
     <ClInclude Include="..\src\compiler\debug_macros.h">
     <ClInclude Include="..\src\compiler\debug_macros.h">
       <Filter>include\compiler</Filter>
       <Filter>include\compiler</Filter>
     </ClInclude>
     </ClInclude>
@@ -108,6 +105,9 @@
     <ClInclude Include="..\src\shared\gravity_value.h">
     <ClInclude Include="..\src\shared\gravity_value.h">
       <Filter>include\shared</Filter>
       <Filter>include\shared</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="..\src\shared\gravity_config.h">
+      <Filter>include\shared</Filter>
+    </ClInclude>
     <ClInclude Include="..\src\utils\gravity_debug.h">
     <ClInclude Include="..\src\utils\gravity_debug.h">
       <Filter>include\utils</Filter>
       <Filter>include\utils</Filter>
     </ClInclude>
     </ClInclude>

+ 1 - 1
gravity_visualstudio/gravity_cli.vcxproj

@@ -192,10 +192,10 @@
     <ClInclude Include="..\src\shared\gravity_memory.h" />
     <ClInclude Include="..\src\shared\gravity_memory.h" />
     <ClInclude Include="..\src\shared\gravity_opcodes.h" />
     <ClInclude Include="..\src\shared\gravity_opcodes.h" />
     <ClInclude Include="..\src\shared\gravity_value.h" />
     <ClInclude Include="..\src\shared\gravity_value.h" />
+    <ClInclude Include="..\src\shared\gravity_config.h" />
     <ClInclude Include="..\src\utils\gravity_debug.h" />
     <ClInclude Include="..\src\utils\gravity_debug.h" />
     <ClInclude Include="..\src\utils\gravity_json.h" />
     <ClInclude Include="..\src\utils\gravity_json.h" />
     <ClInclude Include="..\src\utils\gravity_utils.h" />
     <ClInclude Include="..\src\utils\gravity_utils.h" />
-    <ClInclude Include="unistd.h" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\src\cli\gravity.c" />
     <ClCompile Include="..\src\cli\gravity.c" />

+ 3 - 3
gravity_visualstudio/gravity_cli.vcxproj.filters

@@ -24,9 +24,6 @@
     </Filter>
     </Filter>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClInclude Include="unistd.h">
-      <Filter>include</Filter>
-    </ClInclude>
     <ClInclude Include="..\src\compiler\debug_macros.h">
     <ClInclude Include="..\src\compiler\debug_macros.h">
       <Filter>include\compiler</Filter>
       <Filter>include\compiler</Filter>
     </ClInclude>
     </ClInclude>
@@ -96,6 +93,9 @@
     <ClInclude Include="..\src\shared\gravity_value.h">
     <ClInclude Include="..\src\shared\gravity_value.h">
       <Filter>include\shared</Filter>
       <Filter>include\shared</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="..\src\shared\gravity_config.h">
+      <Filter>include\shared</Filter>
+    </ClInclude>
     <ClInclude Include="..\src\utils\gravity_debug.h">
     <ClInclude Include="..\src\utils\gravity_debug.h">
       <Filter>include\utils</Filter>
       <Filter>include\utils</Filter>
     </ClInclude>
     </ClInclude>

+ 1 - 1
gravity_visualstudio/gravity_dll.vcxproj

@@ -194,10 +194,10 @@
     <ClInclude Include="..\src\shared\gravity_memory.h" />
     <ClInclude Include="..\src\shared\gravity_memory.h" />
     <ClInclude Include="..\src\shared\gravity_opcodes.h" />
     <ClInclude Include="..\src\shared\gravity_opcodes.h" />
     <ClInclude Include="..\src\shared\gravity_value.h" />
     <ClInclude Include="..\src\shared\gravity_value.h" />
+    <ClInclude Include="..\src\shared\gravity_config.h" />
     <ClInclude Include="..\src\utils\gravity_debug.h" />
     <ClInclude Include="..\src\utils\gravity_debug.h" />
     <ClInclude Include="..\src\utils\gravity_json.h" />
     <ClInclude Include="..\src\utils\gravity_json.h" />
     <ClInclude Include="..\src\utils\gravity_utils.h" />
     <ClInclude Include="..\src\utils\gravity_utils.h" />
-    <ClInclude Include="unistd.h" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClCompile Include="dll.c" />
     <ClCompile Include="dll.c" />

+ 3 - 3
gravity_visualstudio/gravity_dll.vcxproj.filters

@@ -18,9 +18,6 @@
     </Filter>
     </Filter>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClInclude Include="unistd.h">
-      <Filter>include</Filter>
-    </ClInclude>
     <ClInclude Include="..\src\compiler\debug_macros.h">
     <ClInclude Include="..\src\compiler\debug_macros.h">
       <Filter>include\compiler</Filter>
       <Filter>include\compiler</Filter>
     </ClInclude>
     </ClInclude>
@@ -90,6 +87,9 @@
     <ClInclude Include="..\src\shared\gravity_value.h">
     <ClInclude Include="..\src\shared\gravity_value.h">
       <Filter>include\shared</Filter>
       <Filter>include\shared</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="..\src\shared\gravity_config.h">
+      <Filter>include\shared</Filter>
+    </ClInclude>
     <ClInclude Include="..\src\utils\gravity_debug.h">
     <ClInclude Include="..\src\utils\gravity_debug.h">
       <Filter>include\utils</Filter>
       <Filter>include\utils</Filter>
     </ClInclude>
     </ClInclude>

+ 1 - 1
src/compiler/debug_macros.h

@@ -16,11 +16,11 @@
 #include <string.h>
 #include <string.h>
 #include <stdarg.h>
 #include <stdarg.h>
 #include <assert.h>
 #include <assert.h>
-#include <unistd.h>
 #include <limits.h>
 #include <limits.h>
 #include <float.h>
 #include <float.h>
 #include <math.h>
 #include <math.h>
 #include "gravity_memory.h"
 #include "gravity_memory.h"
+#include "gravity_config.h"
 
 
 #define GRAVITY_LEXEM_DEBUG             0
 #define GRAVITY_LEXEM_DEBUG             0
 #define GRAVITY_LEXER_DEGUB             0
 #define GRAVITY_LEXER_DEGUB             0

+ 38 - 29
gravity_visualstudio/unistd.h → src/shared/gravity_config.h

@@ -1,29 +1,38 @@
-#ifdef _MSC_VER
-
-#pragma once
-#pragma comment(lib, "Shlwapi.lib")
-
-#include <basetsd.h>
-#include <io.h>
-#include <stdio.h>
-
-// Fix for Visual Studio
-
-#if (!defined(HAVE_BZERO) || !defined(bzero))
-#define bzero(b, len) memset((b), 0, (len))
-#endif
-
-#if (!defined(HAVE_SNPRINTF) || !defined(snprintf))
-#define snprintf    _snprintf
-#endif
-
-typedef SSIZE_T     ssize_t;
-typedef int         mode_t;
-
-#define open        _open
-#define close       _close
-#define read        _read
-#define write       _write
-#define __func__    __FUNCTION__
-
-#endif
+//
+//  gravity_config.h
+//  gravity
+//
+//  Created by Scott Ramsay on 18/6/20.
+//  Copyright (c) 2014 CreoLabs. All rights reserved.
+//
+
+#ifndef __GRAVITY_CONFIG__
+#define __GRAVITY_CONFIG__
+
+#ifdef _MSC_VER
+
+#pragma comment(lib, "shlwapi")
+#include <basetsd.h>
+
+#if (!defined(HAVE_BZERO) || !defined(bzero))
+#define bzero(b, len) memset((b), 0, (len))
+#endif
+
+#if (!defined(HAVE_SNPRINTF) || !defined(snprintf))
+#define snprintf    _snprintf
+#endif
+
+typedef SSIZE_T     ssize_t;
+typedef int         mode_t;
+
+#define open        _open
+#define close       _close
+#define read        _read
+#define write       _write
+#define __func__    __FUNCTION__
+
+#else
+#include <unistd.h>
+#endif
+
+#endif // __GRAVITY_CONFIG__

+ 1 - 1
src/utils/gravity_json.c

@@ -31,6 +31,7 @@
 #include "gravity_utils.h"
 #include "gravity_utils.h"
 #include "gravity_memory.h"
 #include "gravity_memory.h"
 #include "gravity_array.h"
 #include "gravity_array.h"
+#include "gravity_config.h"
 
 
 #include <inttypes.h>
 #include <inttypes.h>
 #include <math.h>
 #include <math.h>
@@ -39,7 +40,6 @@
 #include <fcntl.h>
 #include <fcntl.h>
 #include <ctype.h>
 #include <ctype.h>
 #include <assert.h>
 #include <assert.h>
-#include <unistd.h>
 
 
 #ifdef _MSC_VER
 #ifdef _MSC_VER
    #ifndef _CRT_SECURE_NO_WARNINGS
    #ifndef _CRT_SECURE_NO_WARNINGS

+ 1 - 1
src/utils/gravity_utils.c

@@ -12,7 +12,6 @@
 #include <stdio.h>
 #include <stdio.h>
 #include <string.h>
 #include <string.h>
 #include <assert.h>
 #include <assert.h>
-#include <unistd.h>
 #include <sys/stat.h>
 #include <sys/stat.h>
 
 
 #if defined(__linux)
 #if defined(__linux)
@@ -29,6 +28,7 @@
 
 
 #include "gravity_utils.h"
 #include "gravity_utils.h"
 #include "gravity_memory.h"
 #include "gravity_memory.h"
+#include "gravity_config.h"
 
 
 #define SWP(x,y) (x^=y, y^=x, x^=y)
 #define SWP(x,y) (x^=y, y^=x, x^=y)