https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7bb12665d6fd1d1f57241fbc400b77b0a31d8aee

commit 7bb12665d6fd1d1f57241fbc400b77b0a31d8aee
Author:     Timo Kreuzer <timo.kreu...@reactos.org>
AuthorDate: Fri Oct 11 14:52:11 2024 +0300
Commit:     Timo Kreuzer <timo.kreu...@reactos.org>
CommitDate: Thu Jan 16 14:18:53 2025 +0200

    [UCRT] Add CMake files
---
 CMakeLists.txt                               |   2 +-
 sdk/lib/CMakeLists.txt                       |   1 +
 sdk/lib/ucrt/CMakeLists.txt                  | 126 +++++++++++++++++++++++++++
 sdk/lib/ucrt/conio/conio.cmake               |  17 ++++
 sdk/lib/ucrt/convert/convert.cmake           |  42 +++++++++
 sdk/lib/ucrt/dll/dll.cmake                   |   5 ++
 sdk/lib/ucrt/env/env.cmake                   |  10 +++
 sdk/lib/ucrt/exec/exec.cmake                 |  13 +++
 sdk/lib/ucrt/filesystem/filesystem.cmake     |  25 ++++++
 sdk/lib/ucrt/heap/heap.cmake                 |  28 ++++++
 sdk/lib/ucrt/initializers/initializers.cmake |  24 +++++
 sdk/lib/ucrt/internal/internal.cmake         |  17 ++++
 sdk/lib/ucrt/locale/locale.cmake             |  25 ++++++
 sdk/lib/ucrt/lowio/lowio.cmake               |  25 ++++++
 sdk/lib/ucrt/mbstring/mbstring.cmake         |  93 ++++++++++++++++++++
 sdk/lib/ucrt/misc/misc.cmake                 |  34 ++++++++
 sdk/lib/ucrt/startup/startup.cmake           |  13 +++
 sdk/lib/ucrt/stdio/stdio.cmake               |  52 +++++++++++
 sdk/lib/ucrt/stdlib/stdlib.cmake             |  24 +++++
 sdk/lib/ucrt/string/string.cmake             |  58 ++++++++++++
 sdk/lib/ucrt/time/time.cmake                 |  21 +++++
 21 files changed, 654 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 38f70b17f63..b51f6f25dea 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -256,7 +256,7 @@ Enable this if the module uses typeid or dynamic_cast. You 
will probably need to
     elseif(ARCH STREQUAL "amd64")
         # clang-cl defines this one for itself
         if (NOT (MSVC AND CMAKE_C_COMPILER_ID STREQUAL "Clang"))
-            add_compile_definitions(_M_AMD64)
+            add_compile_definitions(_M_AMD64 _M_X64)
         endif()
         add_definitions(-D_AMD64_ -D__x86_64__ -D_WIN64)
     elseif(ARCH STREQUAL "arm")
diff --git a/sdk/lib/CMakeLists.txt b/sdk/lib/CMakeLists.txt
index 34dc04870fd..e50c21cad8c 100644
--- a/sdk/lib/CMakeLists.txt
+++ b/sdk/lib/CMakeLists.txt
@@ -52,6 +52,7 @@ add_subdirectory(strmiids)
 add_subdirectory(smlib)
 add_subdirectory(tdilib)
 add_subdirectory(tzlib)
+add_subdirectory(ucrt)
 add_subdirectory(udmihelp)
 add_subdirectory(uuid)
 add_subdirectory(wdmguid)
diff --git a/sdk/lib/ucrt/CMakeLists.txt b/sdk/lib/ucrt/CMakeLists.txt
new file mode 100644
index 00000000000..4c2b2e18559
--- /dev/null
+++ b/sdk/lib/ucrt/CMakeLists.txt
@@ -0,0 +1,126 @@
+
+set(CMAKE_CXX_STANDARD 17)
+
+# Replace the old CRT include directory with the UCRT include directory
+get_property(INCLUDE_DIRS DIRECTORY . PROPERTY INCLUDE_DIRECTORIES)
+list(REMOVE_ITEM INCLUDE_DIRS "${REACTOS_SOURCE_DIR}/sdk/include/crt")
+set_property(DIRECTORY . PROPERTY INCLUDE_DIRECTORIES ${INCLUDE_DIRS})
+include_directories(${REACTOS_SOURCE_DIR}/sdk/include/ucrt)
+
+if(MSVC)
+    # Disable warning C4083: expected ')'; found identifier '<warning 
identifier>'
+    add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/wd4083>)
+
+    # Disable warning C4189: 'cvt': local variable is initialized but not 
referenced
+    add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/wd4189>)
+endif()
+
+# Internal includes
+include_directories(BEFORE inc)
+
+if(${ARCH} STREQUAL "i386")
+    include_directories(inc/i386)
+endif()
+
+remove_definitions(-D_WIN32_WINNT=0x502 -DWINVER=0x502)
+add_compile_definitions(
+    WINVER=0x600
+    _WIN32_WINNT=0x600
+    _UCRT
+    _CORECRT_BUILD
+    _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY
+    _GCC_NO_SAL_ATTRIIBUTES
+    CRTDLL
+)
+
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR
+   CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    # Silence GCC/Clang warnings
+    add_compile_options(
+        -Wno-unknown-warning-option
+        -Wno-unused-function
+        -Wno-unknown-pragmas
+        -Wno-builtin-declaration-mismatch
+        -Wno-parentheses
+        -Wno-unused-variable
+        -Wno-sign-compare
+        -Wno-enum-compare
+        -Wno-switch
+        -Wno-write-strings
+        -Wno-comment
+        -Wno-narrowing
+        -Wno-misleading-indentation
+        -Wno-missing-braces
+        -Wno-unused-value
+        -Wno-unused-local-typedef
+        -Wno-unused-function
+        -Wno-writable-strings
+        -Wno-microsoft-template
+        -Wno-switch
+        -Wno-ignored-pragmas
+        -Wno-empty-body
+        -Wno-tautological-constant-out-of-range-compare
+        -Wno-ignored-attributes
+        -Wno-uninitialized
+    )
+    add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-Wno-reorder>)
+endif()
+
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    add_compile_definitions(
+        _lrotl=___lrotl
+        _rotl=___rotl
+        _rotl64=___rotl64
+        _lrotr=___lrotr
+        _rotr=___rotr
+        _rotr64=___rotr64
+    )
+endif()
+
+# Hack until we support globally defining _DEBUG
+if(DBG)
+    add_compile_definitions(_DEBUG)
+endif()
+
+include(conio/conio.cmake)
+include(convert/convert.cmake)
+include(dll/dll.cmake)
+include(env/env.cmake)
+include(exec/exec.cmake)
+include(filesystem/filesystem.cmake)
+include(heap/heap.cmake)
+include(initializers/initializers.cmake)
+include(internal/internal.cmake)
+include(locale/locale.cmake)
+include(lowio/lowio.cmake)
+include(mbstring/mbstring.cmake)
+include(misc/misc.cmake)
+include(startup/startup.cmake)
+include(stdio/stdio.cmake)
+include(stdlib/stdlib.cmake)
+include(string/string.cmake)
+include(time/time.cmake)
+
+add_library(ucrt OBJECT
+    ${UCRT_CONIO_SOURCES}
+    ${UCRT_CONVERT_SOURCES}
+    ${UCRT_DLL_SOURCES}
+    ${UCRT_ENV_SOURCES}
+    ${UCRT_EXEC_SOURCES}
+    ${UCRT_FILESYSTEM_SOURCES}
+    ${UCRT_HEAP_SOURCES}
+    ${UCRT_INITIALIZERS_SOURCES}
+    ${UCRT_INTERNAL_SOURCES}
+    ${UCRT_LOCALE_SOURCES}
+    ${UCRT_LOWIO_SOURCES}
+    ${UCRT_MBSTRING_SOURCES}
+    ${UCRT_MISC_SOURCES}
+    ${UCRT_STARTUP_SOURCES}
+    ${UCRT_STDIO_SOURCES}
+    ${UCRT_STDLIB_SOURCES}
+    ${UCRT_STRING_SOURCES}
+    ${UCRT_TIME_SOURCES}
+)
+
+#target_link_libraries(ucrt pseh)
+add_dependencies(ucrt psdk asm)
diff --git a/sdk/lib/ucrt/conio/conio.cmake b/sdk/lib/ucrt/conio/conio.cmake
new file mode 100644
index 00000000000..7e6e7842f28
--- /dev/null
+++ b/sdk/lib/ucrt/conio/conio.cmake
@@ -0,0 +1,17 @@
+
+list(APPEND UCRT_CONIO_SOURCES
+    conio/cgets.cpp
+    conio/cgetws.cpp
+    conio/cprintf.cpp
+    conio/cputs.cpp
+    conio/cputws.cpp
+    conio/cscanf.cpp
+    conio/getch.cpp
+    conio/getwch.cpp
+    conio/initcon.cpp
+    conio/initconin.cpp
+    conio/pipe.cpp
+    conio/popen.cpp
+    conio/putch.cpp
+    conio/putwch.cpp
+)
diff --git a/sdk/lib/ucrt/convert/convert.cmake 
b/sdk/lib/ucrt/convert/convert.cmake
new file mode 100644
index 00000000000..90f9bb5008b
--- /dev/null
+++ b/sdk/lib/ucrt/convert/convert.cmake
@@ -0,0 +1,42 @@
+
+list(APPEND UCRT_CONVERT_SOURCES
+    convert/atof.cpp
+    convert/atoldbl.cpp
+    convert/atox.cpp
+    convert/c16rtomb.cpp
+    convert/c32rtomb.cpp
+    convert/cfout.cpp
+    convert/common_utf8.cpp
+    convert/cvt.cpp
+    convert/fcvt.cpp
+    convert/fp_flags.cpp
+    convert/gcvt.cpp
+    convert/isctype.cpp
+    convert/ismbstr.cpp
+    convert/iswctype.cpp
+    convert/mblen.cpp
+    convert/mbrtoc16.cpp
+    convert/mbrtoc32.cpp
+    convert/mbrtowc.cpp
+    convert/mbstowcs.cpp
+    convert/mbtowc.cpp
+    convert/strtod.cpp
+    convert/strtox.cpp
+    convert/swab.cpp
+    convert/tolower_toupper.cpp
+    convert/towlower.cpp
+    convert/towupper.cpp
+    convert/wcrtomb.cpp
+    convert/wcstombs.cpp
+    convert/wctomb.cpp
+    convert/wctrans.cpp
+    convert/wctype.cpp
+    convert/xtoa.cpp
+    convert/_ctype.cpp
+    convert/_fptostr.cpp
+    convert/_mbslen.cpp
+    convert/_wctype.cpp
+)
+
+# All multibyte string functions require the _MBCS macro to be defined
+set_source_files_properties(convert/ismbstr.cpp PROPERTIES COMPILE_DEFINITIONS 
_MBCS)
diff --git a/sdk/lib/ucrt/dll/dll.cmake b/sdk/lib/ucrt/dll/dll.cmake
new file mode 100644
index 00000000000..b8984d43bc5
--- /dev/null
+++ b/sdk/lib/ucrt/dll/dll.cmake
@@ -0,0 +1,5 @@
+
+list(APPEND UCRT_DLL_SOURCES
+    dll/appcrt_dllmain.cpp
+    dll/empty.cpp
+)
diff --git a/sdk/lib/ucrt/env/env.cmake b/sdk/lib/ucrt/env/env.cmake
new file mode 100644
index 00000000000..891dceb27f5
--- /dev/null
+++ b/sdk/lib/ucrt/env/env.cmake
@@ -0,0 +1,10 @@
+
+list(APPEND UCRT_ENV_SOURCES
+    env/environment_initialization.cpp
+    env/getenv.cpp
+    env/getpath.cpp
+    env/get_environment_from_os.cpp
+    env/putenv.cpp
+    env/searchenv.cpp
+    env/setenv.cpp
+)
diff --git a/sdk/lib/ucrt/exec/exec.cmake b/sdk/lib/ucrt/exec/exec.cmake
new file mode 100644
index 00000000000..f9810c50999
--- /dev/null
+++ b/sdk/lib/ucrt/exec/exec.cmake
@@ -0,0 +1,13 @@
+
+list(APPEND UCRT_EXEC_SOURCES
+    exec/cenvarg.cpp
+    exec/exec.cmake
+    exec/getproc.cpp
+    exec/loaddll.cpp
+    exec/spawnl.cpp
+    exec/spawnlp.cpp
+    exec/spawnv.cpp
+    exec/spawnvp.cpp
+    exec/system.cpp
+    exec/wait.cpp
+)
diff --git a/sdk/lib/ucrt/filesystem/filesystem.cmake 
b/sdk/lib/ucrt/filesystem/filesystem.cmake
new file mode 100644
index 00000000000..77685b23ec5
--- /dev/null
+++ b/sdk/lib/ucrt/filesystem/filesystem.cmake
@@ -0,0 +1,25 @@
+
+list(APPEND UCRT_FILESYSTEM_SOURCES
+    filesystem/access.cpp
+    filesystem/chmod.cpp
+    filesystem/findfile.cpp
+    filesystem/fullpath.cpp
+    filesystem/makepath.cpp
+    filesystem/mkdir.cpp
+    filesystem/rename.cpp
+    filesystem/rmdir.cpp
+    filesystem/splitpath.cpp
+    filesystem/stat.cpp
+    filesystem/unlink.cpp
+    filesystem/waccess.cpp
+    filesystem/wchmod.cpp
+    filesystem/wmkdir.cpp
+    filesystem/wrename.cpp
+    filesystem/wrmdir.cpp
+    filesystem/wunlink.cpp
+)
+
+if(MSVC)
+    # Disable warning C4838: conversion from 'int' to 'size_t' requires a 
narrowing conversion
+    set_source_files_properties(filesystem/splitpath.cpp PROPERTIES 
COMPILE_FLAGS "/wd4838")
+endif()
diff --git a/sdk/lib/ucrt/heap/heap.cmake b/sdk/lib/ucrt/heap/heap.cmake
new file mode 100644
index 00000000000..1d3b30c0c34
--- /dev/null
+++ b/sdk/lib/ucrt/heap/heap.cmake
@@ -0,0 +1,28 @@
+
+list(APPEND UCRT_HEAP_SOURCES
+    heap/align.cpp
+    heap/calloc.cpp
+    heap/calloc_base.cpp
+    heap/expand.cpp
+    heap/free.cpp
+    heap/free_base.cpp
+    heap/heapchk.cpp
+    heap/heapmin.cpp
+    heap/heapwalk.cpp
+    heap/heap_handle.cpp
+    heap/malloc.cpp
+    heap/malloc_base.cpp
+    heap/msize.cpp
+    heap/new_handler.cpp
+    heap/new_mode.cpp
+    heap/realloc.cpp
+    heap/realloc_base.cpp
+    heap/recalloc.cpp
+)
+
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+    list(APPEND UCRT_HEAP_SOURCES
+        heap/debug_heap.cpp
+        heap/debug_heap_hook.cpp
+    )
+endif()
diff --git a/sdk/lib/ucrt/initializers/initializers.cmake 
b/sdk/lib/ucrt/initializers/initializers.cmake
new file mode 100644
index 00000000000..1f2944cac86
--- /dev/null
+++ b/sdk/lib/ucrt/initializers/initializers.cmake
@@ -0,0 +1,24 @@
+
+list(APPEND UCRT_INITIALIZERS_SOURCES
+    initializers/clock_initializer.cpp
+    initializers/console_input_initializer.cpp
+    initializers/console_output_initializer.cpp
+    initializers/fmode_initializer.cpp
+    initializers/locale_initializer.cpp
+    initializers/multibyte_initializer.cpp
+    initializers/stdio_initializer.cpp
+    initializers/timeset_initializer.cpp
+    initializers/tmpfile_initializer.cpp
+)
+
+if(${ARCH} STREQUAL "i386")
+    list(APPEND UCRT_INITIALIZERS_SOURCES
+        initializers/i386/sse2_initializer.cpp
+    )
+endif()
+
+if(${ARCH} STREQUAL "amd64" OR ${ARCH} STREQUAL "arm64")
+    list(APPEND UCRT_INITIALIZERS_SOURCES
+        initializers/fma3_initializer.cpp
+    )
+endif()
diff --git a/sdk/lib/ucrt/internal/internal.cmake 
b/sdk/lib/ucrt/internal/internal.cmake
new file mode 100644
index 00000000000..503f5a20c79
--- /dev/null
+++ b/sdk/lib/ucrt/internal/internal.cmake
@@ -0,0 +1,17 @@
+
+list(APPEND UCRT_INTERNAL_SOURCES
+    internal/CreateProcessA.cpp
+    internal/GetModuleFileNameA.cpp
+    internal/initialization.cpp
+    internal/LoadLibraryExA.cpp
+    internal/locks.cpp
+    internal/OutputDebugStringA.cpp
+    internal/peb_access.cpp
+    internal/per_thread_data.cpp
+    internal/report_runtime_error.cpp
+    internal/SetCurrentDirectoryA.cpp
+    internal/SetEnvironmentVariableA.cpp
+    internal/shared_initialization.cpp
+    internal/winapi_thunks.cpp
+    internal/win_policies.cpp
+)
diff --git a/sdk/lib/ucrt/locale/locale.cmake b/sdk/lib/ucrt/locale/locale.cmake
new file mode 100644
index 00000000000..97fe554114a
--- /dev/null
+++ b/sdk/lib/ucrt/locale/locale.cmake
@@ -0,0 +1,25 @@
+
+list(APPEND UCRT_LOCALE_SOURCES
+    locale/CompareStringA.cpp
+    locale/CompareStringW.cpp
+    locale/ctype.cpp
+    locale/GetLocaleInfoA.cpp
+    locale/getqloc_downlevel.cpp
+    locale/GetStringTypeA.cpp
+    locale/get_qualified_locale.cpp
+    locale/glstatus.cpp
+    locale/initctype.cpp
+    locale/initmon.cpp
+    locale/initnum.cpp
+    locale/inittime.cpp
+    locale/lcidtoname_downlevel.cpp
+    locale/LCMapStringA.cpp
+    locale/LCMapStringW.cpp
+    locale/lconv_unsigned_char_initialization.cpp
+    locale/localeconv.cpp
+    locale/locale_refcounting.cpp
+    locale/locale_update.cpp
+    locale/nlsdata.cpp
+    locale/setlocale.cpp
+    locale/wsetlocale.cpp
+)
diff --git a/sdk/lib/ucrt/lowio/lowio.cmake b/sdk/lib/ucrt/lowio/lowio.cmake
new file mode 100644
index 00000000000..119b5b90b0e
--- /dev/null
+++ b/sdk/lib/ucrt/lowio/lowio.cmake
@@ -0,0 +1,25 @@
+
+list(APPEND UCRT_LOWIO_SOURCES
+    lowio/chsize.cpp
+    lowio/close.cpp
+    lowio/commit.cpp
+    lowio/creat.cpp
+    lowio/dup.cpp
+    lowio/dup2.cpp
+    lowio/eof.cpp
+    lowio/filelength.cpp
+    lowio/ioinit.cpp
+    lowio/isatty.cpp
+    lowio/locking.cpp
+    lowio/lseek.cpp
+    lowio/mktemp.cpp
+    lowio/open.cpp
+    lowio/osfinfo.cpp
+    lowio/read.cpp
+    lowio/setmode.cpp
+    lowio/tell.cpp
+    lowio/telli64.cpp
+    lowio/txtmode.cpp
+    lowio/umask.cpp
+    lowio/write.cpp
+)
diff --git a/sdk/lib/ucrt/mbstring/mbstring.cmake 
b/sdk/lib/ucrt/mbstring/mbstring.cmake
new file mode 100644
index 00000000000..f998ae2f327
--- /dev/null
+++ b/sdk/lib/ucrt/mbstring/mbstring.cmake
@@ -0,0 +1,93 @@
+
+list(APPEND UCRT_MBSTRING_SOURCES
+    mbstring/ismbalnm.cpp
+    mbstring/ismbalph.cpp
+    mbstring/ismbbyte.cpp
+    mbstring/ismbdgt.cpp
+    mbstring/ismbgrph.cpp
+    mbstring/ismbknj.cpp
+    mbstring/ismblgl.cpp
+    mbstring/ismblwr.cpp
+    mbstring/ismbprn.cpp
+    mbstring/ismbpunc.cpp
+    mbstring/ismbsle.cpp
+    mbstring/ismbspc.cpp
+    mbstring/ismbupr.cpp
+    mbstring/mbbtype.cpp
+    mbstring/mbccpy.cpp
+    mbstring/mbccpy_s.cpp
+    mbstring/mbccpy_s_l.cpp
+    mbstring/mbclen.cpp
+    mbstring/mbclevel.cpp
+    mbstring/mbctype.cpp
+    mbstring/mbsbtype.cpp
+    mbstring/mbscat_s.cpp
+    mbstring/mbscat_s_l.cpp
+    mbstring/mbschr.cpp
+    mbstring/mbscmp.cpp
+    mbstring/mbscoll.cpp
+    mbstring/mbscpy_s.cpp
+    mbstring/mbscpy_s_l.cpp
+    mbstring/mbscspn.cpp
+    mbstring/mbsdec.cpp
+    mbstring/mbsicmp.cpp
+    mbstring/mbsicoll.cpp
+    mbstring/mbsinc.cpp
+    mbstring/mbslen.cpp
+    mbstring/mbslen_s.cpp
+    mbstring/mbslwr.cpp
+    mbstring/mbsnbcat.cpp
+    mbstring/mbsnbcat_s.cpp
+    mbstring/mbsnbcat_s_l.cpp
+    mbstring/mbsnbcmp.cpp
+    mbstring/mbsnbcnt.cpp
+    mbstring/mbsnbcol.cpp
+    mbstring/mbsnbcpy.cpp
+    mbstring/mbsnbcpy_s.cpp
+    mbstring/mbsnbcpy_s_l.cpp
+    mbstring/mbsnbicm.cpp
+    mbstring/mbsnbico.cpp
+    mbstring/mbsnbset.cpp
+    mbstring/mbsnbset_s.cpp
+    mbstring/mbsnbset_s_l.cpp
+    mbstring/mbsncat.cpp
+    mbstring/mbsncat_s.cpp
+    mbstring/mbsncat_s.inl
+    mbstring/mbsncat_s_l.cpp
+    mbstring/mbsnccnt.cpp
+    mbstring/mbsncmp.cpp
+    mbstring/mbsncoll.cpp
+    mbstring/mbsncpy.cpp
+    mbstring/mbsncpy_s.cpp
+    mbstring/mbsncpy_s.inl
+    mbstring/mbsncpy_s_l.cpp
+    mbstring/mbsnextc.cpp
+    mbstring/mbsnicmp.cpp
+    mbstring/mbsnicol.cpp
+    mbstring/mbsninc.cpp
+    mbstring/mbsnset.cpp
+    mbstring/mbsnset_s.cpp
+    mbstring/mbsnset_s.inl
+    mbstring/mbsnset_s_l.cpp
+    mbstring/mbspbrk.cpp
+    mbstring/mbsrchr.cpp
+    mbstring/mbsrev.cpp
+    mbstring/mbsset.cpp
+    mbstring/mbsset_s.cpp
+    mbstring/mbsset_s_l.cpp
+    mbstring/mbsspn.cpp
+    mbstring/mbsspnp.cpp
+    mbstring/mbsstr.cpp
+    mbstring/mbstok.cpp
+    mbstring/mbstok_s.cpp
+    mbstring/mbsupr.cpp
+    mbstring/mbtohira.cpp
+    mbstring/mbtokata.cpp
+    mbstring/mbtolwr.cpp
+    mbstring/mbtoupr.cpp
+    mbstring/tojisjms.cpp
+    mbstring/tombbmbc.cpp
+)
+
+# All multibyte string functions require the _MBCS macro to be defined
+set_source_files_properties(${UCRT_MBSTRING_SOURCES} PROPERTIES 
COMPILE_DEFINITIONS _MBCS)
diff --git a/sdk/lib/ucrt/misc/misc.cmake b/sdk/lib/ucrt/misc/misc.cmake
new file mode 100644
index 00000000000..92abf476e2f
--- /dev/null
+++ b/sdk/lib/ucrt/misc/misc.cmake
@@ -0,0 +1,34 @@
+
+list(APPEND UCRT_MISC_SOURCES
+    misc/chdir.cpp
+    misc/crtmbox.cpp
+    misc/drive.cpp
+    misc/drivemap.cpp
+    misc/drivfree.cpp
+    misc/errno.cpp
+    misc/exception_filter.cpp
+    misc/getcwd.cpp
+    misc/getpid.cpp
+    misc/invalid_parameter.cpp
+    misc/is_wctype.cpp
+    misc/perror.cpp
+    misc/resetstk.cpp
+    misc/seterrm.cpp
+    misc/set_error_mode.cpp
+    misc/signal.cpp
+    misc/slbeep.cpp
+    misc/strerror.cpp
+    misc/syserr.cpp
+    misc/systime.cpp
+    misc/terminate.cpp
+    misc/wperror.cpp
+    misc/_strerr.cpp
+)
+
+if (CMAKE_BUILD_TYPE STREQUAL "Debug")
+    list(APPEND UCRT_MISC_SOURCES
+        misc/dbgrpt.cpp
+        misc/dbgrptt.cpp
+        misc/debug_fill_threshold.cpp
+    )
+endif()
diff --git a/sdk/lib/ucrt/startup/startup.cmake 
b/sdk/lib/ucrt/startup/startup.cmake
new file mode 100644
index 00000000000..9bc9b454df7
--- /dev/null
+++ b/sdk/lib/ucrt/startup/startup.cmake
@@ -0,0 +1,13 @@
+
+list(APPEND UCRT_STARTUP_SOURCES
+    startup/abort.cpp
+    startup/argv_data.cpp
+    startup/argv_parsing.cpp
+    startup/argv_wildcards.cpp
+    startup/argv_winmain.cpp
+    startup/assert.cpp
+    startup/exit.cpp
+    startup/initterm.cpp
+    startup/onexit.cpp
+    startup/thread.cpp
+)
diff --git a/sdk/lib/ucrt/stdio/stdio.cmake b/sdk/lib/ucrt/stdio/stdio.cmake
new file mode 100644
index 00000000000..fdddb4aa133
--- /dev/null
+++ b/sdk/lib/ucrt/stdio/stdio.cmake
@@ -0,0 +1,52 @@
+
+list(APPEND UCRT_STDIO_SOURCES
+    stdio/clearerr.cpp
+    stdio/closeall.cpp
+    stdio/fclose.cpp
+    stdio/fdopen.cpp
+    stdio/feoferr.cpp
+    stdio/fflush.cpp
+    stdio/fgetc.cpp
+    stdio/fgetpos.cpp
+    stdio/fgets.cpp
+    stdio/fgetwc.cpp
+    stdio/fileno.cpp
+    stdio/fopen.cpp
+    stdio/fputc.cpp
+    stdio/fputs.cpp
+    stdio/fputwc.cpp
+    stdio/fputws.cpp
+    stdio/fread.cpp
+    stdio/freopen.cpp
+    stdio/fseek.cpp
+    stdio/fsetpos.cpp
+    stdio/ftell.cpp
+    stdio/fwrite.cpp
+    stdio/gets.cpp
+    stdio/gettemppath.cpp
+    stdio/getw.cpp
+    stdio/input.cpp
+    stdio/ncommode.cpp
+    stdio/openfile.cpp
+    stdio/output.cpp
+    stdio/printf_count_output.cpp
+    stdio/puts.cpp
+    stdio/putw.cpp
+    stdio/putws.cpp
+    stdio/rewind.cpp
+    stdio/rmtmp.cpp
+    stdio/setbuf.cpp
+    stdio/setmaxf.cpp
+    stdio/setvbuf.cpp
+    stdio/stream.cpp
+    stdio/tempnam.cpp
+    stdio/tmpfile.cpp
+    stdio/ungetc.cpp
+    stdio/ungetwc.cpp
+    stdio/_filbuf.cpp
+    stdio/_file.cpp
+    stdio/_flsbuf.cpp
+    stdio/_freebuf.cpp
+    stdio/_getbuf.cpp
+    stdio/_sftbuf.cpp
+)
diff --git a/sdk/lib/ucrt/stdlib/stdlib.cmake b/sdk/lib/ucrt/stdlib/stdlib.cmake
new file mode 100644
index 00000000000..fafbad26ea6
--- /dev/null
+++ b/sdk/lib/ucrt/stdlib/stdlib.cmake
@@ -0,0 +1,24 @@
+
+list(APPEND UCRT_STDLIB_SOURCES
+    stdlib/abs.cpp
+    stdlib/bsearch.cpp
+    stdlib/bsearch_s.cpp
+    stdlib/byteswap.cpp
+    stdlib/div.cpp
+    stdlib/imaxabs.cpp
+    stdlib/imaxdiv.cpp
+    stdlib/labs.cpp
+    stdlib/ldiv.cpp
+    stdlib/lfind.cpp
+    stdlib/lfind_s.cpp
+    stdlib/llabs.cpp
+    stdlib/lldiv.cpp
+    stdlib/lsearch.cpp
+    stdlib/lsearch_s.cpp
+    stdlib/qsort.cpp
+    stdlib/qsort_s.cpp
+    stdlib/rand.cpp
+    stdlib/rand_s.cpp
+    stdlib/rotl.cpp
+    stdlib/rotr.cpp
+)
diff --git a/sdk/lib/ucrt/string/string.cmake b/sdk/lib/ucrt/string/string.cmake
new file mode 100644
index 00000000000..2935b353269
--- /dev/null
+++ b/sdk/lib/ucrt/string/string.cmake
@@ -0,0 +1,58 @@
+
+list(APPEND UCRT_STRING_SOURCES
+    string/memcpy_s.cpp
+    string/memicmp.cpp
+    string/strcat_s.cpp
+    string/strcoll.cpp
+    string/strcpy_s.cpp
+    string/strdup.cpp
+    string/stricmp.cpp
+    string/stricoll.cpp
+    string/strlwr.cpp
+    string/strncat_s.cpp
+    string/strncnt.cpp
+    string/strncoll.cpp
+    string/strncpy_s.cpp
+    string/strnicmp.cpp
+    string/strnicol.cpp
+    string/strnlen.cpp
+    string/strnset_s.cpp
+    string/strset_s.cpp
+    string/strtok.cpp
+    string/strtok_s.cpp
+    string/strupr.cpp
+    string/strxfrm.cpp
+    string/wcscat.cpp
+    string/wcscat_s.cpp
+    string/wcscmp.cpp
+    string/wcscoll.cpp
+    string/wcscpy.cpp
+    string/wcscpy_s.cpp
+    string/wcscspn.cpp
+    string/wcsdup.cpp
+    string/wcsicmp.cpp
+    string/wcsicoll.cpp
+    string/wcslwr.cpp
+    string/wcsncat.cpp
+    string/wcsncat_s.cpp
+    string/wcsncmp.cpp
+    string/wcsncnt.cpp
+    string/wcsncoll.cpp
+    string/wcsncpy.cpp
+    string/wcsncpy_s.cpp
+    string/wcsnicmp.cpp
+    string/wcsnicol.cpp
+    string/wcsnset.cpp
+    string/wcsnset_s.cpp
+    string/wcspbrk.cpp
+    string/wcsrev.cpp
+    string/wcsset.cpp
+    string/wcsset_s.cpp
+    string/wcsspn.cpp
+    string/wcstok.cpp
+    string/wcstok_s.cpp
+    string/wcsupr.cpp
+    string/wcsxfrm.cpp
+    string/wmemcpy_s.cpp
+    string/wmemmove_s.cpp
+)
diff --git a/sdk/lib/ucrt/time/time.cmake b/sdk/lib/ucrt/time/time.cmake
new file mode 100644
index 00000000000..c74d9f291b4
--- /dev/null
+++ b/sdk/lib/ucrt/time/time.cmake
@@ -0,0 +1,21 @@
+
+list(APPEND UCRT_TIME_SOURCES
+    time/asctime.cpp
+    time/clock.cpp
+    time/ctime.cpp
+    time/days.cpp
+    time/difftime.cpp
+    time/ftime.cpp
+    time/gmtime.cpp
+    time/localtime.cpp
+    time/loctotime.cpp
+    time/mktime.cpp
+    time/strdate.cpp
+    time/strftime.cpp
+    time/strtime.cpp
+    time/time.cpp
+    time/timeset.cpp
+    time/tzset.cpp
+    time/utime.cpp
+    time/wcsftime.cpp
+)

Reply via email to