Skip to content

Commit

Permalink
Add minimal emscripten build support (#7954)
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanking13 committed May 30, 2022
1 parent 7a039e0 commit cc6d57a
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
3 changes: 1 addition & 2 deletions python-package/xgboost/libpath.py
Expand Up @@ -43,8 +43,7 @@ def find_lib_path() -> List[str]:
# directory here
dll_path.append(os.path.join(curr_path, './windows/Release/'))
dll_path = [os.path.join(p, 'xgboost.dll') for p in dll_path]
elif sys.platform.startswith('linux') or sys.platform.startswith(
'freebsd'):
elif sys.platform.startswith(('linux', 'freebsd', 'emscripten')):
dll_path = [os.path.join(p, 'libxgboost.so') for p in dll_path]
elif sys.platform == 'darwin':
dll_path = [os.path.join(p, 'libxgboost.dylib') for p in dll_path]
Expand Down
5 changes: 4 additions & 1 deletion src/common/host_device_vector.cc
Expand Up @@ -180,13 +180,16 @@ template class HostDeviceVector<uint64_t>; // bst_row_t
template class HostDeviceVector<uint32_t>; // bst_feature_t
template class HostDeviceVector<RegTree::Segment>;

#if defined(__APPLE__)
#if defined(__APPLE__) || defined(__EMSCRIPTEN__)
/*
* On OSX:
*
* typedef unsigned int uint32_t;
* typedef unsigned long long uint64_t;
* typedef unsigned long __darwin_size_t;
*
* On Emscripten:
* typedef unsigned long size_t;
*/
template class HostDeviceVector<std::size_t>;
#endif // defined(__APPLE__)
Expand Down

0 comments on commit cc6d57a

Please sign in to comment.