Skip to content

Win32: Visual Studio 2017 support using CMake#443

Merged
ashinn merged 7 commits into
ashinn:masterfrom
okuoku:win32-cmake
Nov 18, 2017
Merged

Win32: Visual Studio 2017 support using CMake#443
ashinn merged 7 commits into
ashinn:masterfrom
okuoku:win32-cmake

Conversation

@okuoku
Copy link
Copy Markdown
Collaborator

@okuoku okuoku commented Nov 18, 2017

Visual Studio 2017 compilation support using CMake which is bundled with VS2017.

Currently, it does not support amd64 (and ARMs).

  • sexp.c: Remove use of strcasestr and use strncasecmp instead. Both are not standard C function but latter has _strnicmp on Win32 libc.
  • main.c: Remove [RFC] Treat scheme-r7rs command name as in SRFI 22. #435 with _WIN32 as the SRFI meant for UNIX platforms
  • Remove old .vcproj
  • Added CMakeLists.txt to test with. Currently it does NOT support; SEXP_USE_DL and platforms other than Windows. It is only meant to keep C portability for further updates. Feel free to call me whenever it broken by further commits..
  • contrib/chibi-genstatic-helper.cmake: An wrapper for genstatic. It is required because shell redirection is not too reliable on Win32 + CMake builds.
  • appveyor.yml: Added CMake build configurations.

CI: https://ci.appveyor.com/project/okuoku/chibi-scheme/build/1.0.17

Currently it is broken on:

  • Win64 MinGW: It does not handle character case conversions properly.
  • Win32 MSVC: It has an error on flonums. FAIL: (eqv?: 0.14285714285714282 0.14285714285714288).

okuoku and others added 7 commits November 18, 2017 15:24
strcasestr is not available on MS C runtime. Use strncasecmp instead
which is in POSIX. MS C runtime has _strnicmp().
This CMakeLists.txt only meant for Win32 MSVC builds.
For POSIX platforms, it is recommended using Makefile.
Remove chibi-scheme.vcproj to prevent interfere with CMake builds.
Disable ashinn#435 for Win32 as it is only meant for UNIX platforms.
@ashinn ashinn merged commit 8111f17 into ashinn:master Nov 18, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants