-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Fix compilation on windows #7074
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Since this commit VS2022 with v141 tools and Windows SDK 10.0.19041.0 is required to build RethinkDB on windows. VS2015 no longer has to be installed.
Required for compilation on windows. This commit also removes old gtest source files from this repo, as no-fetch approach is no longer valid.
Original quickjs doesn't support MSVC compiler, hence this change is required for windows build.
- adjust includes - fix metadata_file_t namespacing - fix remove_directory_helper function
Drops the requirement to install cmake explicitly
points out new requirements
srh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks great! I've left notes for myself for some petty fix-ups after merging.
| @@ -86,6 +86,8 @@ | |||
| RAPIDJSON_HAS_STDSTRING; | |||
| RAPIDJSON_PARSE_DEFAULT_FLAGS=kParseFullPrecisionFlag; | |||
| BOOST_DATE_TIME_NO_LIB; | |||
| JS_STRICT_NAN_BOXING; | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note to self to review what this does.
| @@ -86,6 +86,8 @@ | |||
| RAPIDJSON_HAS_STDSTRING; | |||
| RAPIDJSON_PARSE_DEFAULT_FLAGS=kParseFullPrecisionFlag; | |||
| BOOST_DATE_TIME_NO_LIB; | |||
| JS_STRICT_NAN_BOXING; | |||
| CURL_STATICLIB; | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got this.
c:\cygwin64\home\sam\rethinkdb\src\extproc\http_job.cc(8): warning C4005: 'CURL_STATICLIB': macro redefinition [C:\cygwin64\home\sam\rethinkd
b\rethinkdb.vcxproj]
c:\cygwin64\home\sam\rethinkdb\src\extproc\http_job.cc: note: see previous definition of 'CURL_STATICLIB'
|
|
||
| project "quickjs" | ||
| language "C" | ||
| + staticruntime "on" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds... fine? Noting to review this...
| @@ -270,7 +270,7 @@ with_vs_env () { | |||
| # GNU make sets $MAKE and $MAKEFLAGS to values that are not | |||
| # compatible with Windows' nmake | |||
|
|
|||
| env -u MAKE -u MAKEFLAGS cmd /c "$vcvarsall" "$machine" "&&" "$@" | |||
| env -u MAKE -u MAKEFLAGS cmd /c "$vcvarsall" "$machine" "--vcvars_ver=14.1" "&&" "$@" | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's some v141, 14.1, etc. constants around. It might be a good idea to either define these as constants somewhere or leave a comment providing search terms to grep the repository for these strings.
Description
This PR revives the windows support, which was dropped after the 2.3.6 release. I'm keeping this on a separate branch because some time is still needed to audit quickjspp code changes.
Since this PR, windows build additionally requires:
Visual Studio 2015 and CMake installed globally are no longer required. Instructions in WINDOWS.md have been updated.
List of changes
Issues
JSProc.InfiniteRecursionFunctiontest fails.Special thanks to @MrBoombastic for an idea and help with testing.