[CRT] Refactor CMake files

This commit is contained in:
Timo Kreuzer 2021-07-17 14:53:17 +02:00
parent 3e1454c739
commit 8c4aff39a8
22 changed files with 936 additions and 886 deletions

View file

@ -1,28 +1,28 @@
include_directories(include)
#include_directories(.)
add_definitions(-D_CRTBLD)
if(ARCH STREQUAL "i386")
list(APPEND CHKSTK_ASM_SOURCE except/i386/chkstk_asm.s)
if(NOT MSVC)
list(APPEND CHKSTK_SOURCE except/i386/chkstk_ms.s)
endif()
elseif(ARCH STREQUAL "amd64")
list(APPEND CHKSTK_ASM_SOURCE except/amd64/chkstk_ms.s)
elseif(ARCH STREQUAL "arm")
list(APPEND CHKSTK_ASM_SOURCE except/arm/chkstk_asm.s)
if(NOT MSVC)
list(APPEND CHKSTK_SOURCE except/arm/chkstk_ms.s)
endif()
elseif(ARCH STREQUAL "powerpc")
list(APPEND CHKSTK_ASM_SOURCE except/powerpc/chkstk_asm.s)
endif()
add_asm_files(chkstk_lib_asm ${CHKSTK_ASM_SOURCE})
add_library(chkstk ${CHKSTK_SOURCE} ${chkstk_lib_asm})
set_target_properties(chkstk PROPERTIES LINKER_LANGUAGE "C")
add_dependencies(chkstk asm)
include(conio/conio.cmake)
include(direct/direct.cmake)
include(except/except.cmake)
include(float/float.cmake)
include(math/math.cmake)
include(mbstring/mbstring.cmake)
include(mem/mem.cmake)
include(misc/misc.cmake)
include(printf/printf.cmake)
include(process/process.cmake)
include(search/search.cmake)
include(setjmp/setjmp.cmake)
include(startup/startup.cmake)
include(stdio/stdio.cmake)
include(stdlib/stdlib.cmake)
include(string/string.cmake)
include(time/time.cmake)
include(wine/wine.cmake)
include(wstring/wstring.cmake)
include(crt.cmake)
include(libcntpr.cmake)
@ -45,37 +45,3 @@ add_library(user32_wsprintf
add_dependencies(user32_wsprintf psdk)
target_compile_definitions(user32_wsprintf PRIVATE _USER32_WSPRINTF)
add_library(memcmp mem/memcmp.c)
add_dependencies(memcmp psdk)
add_library(getopt misc/getopt.c)
target_compile_definitions(getopt PRIVATE _DLL __USE_CRTIMP)
add_dependencies(getopt psdk)
add_library(strtol
string/ctype.c
string/iswctype.c
string/strtoi64.c
string/strtol.c
string/strtoul.c
string/strtoull.c
string/wctype.c)
target_compile_definitions(strtol PRIVATE _LIBCNT_)
add_dependencies(strtol psdk)
if(ARCH STREQUAL "i386")
list(APPEND ATAN2_ASM_SOURCE math/i386/atan2_asm.s)
elseif(ARCH STREQUAL "amd64")
list(APPEND ATAN2_ASM_SOURCE math/amd64/atan2.S)
elseif(ARCH STREQUAL "arm")
list(APPEND ATAN2_ASM_SOURCE math/arm/atan2.s)
endif()
add_asm_files(atan2_asm ${ATAN2_ASM_SOURCE})
add_library(atan2 ${atan2_asm})
set_target_properties(atan2 PROPERTIES LINKER_LANGUAGE "C")
add_dependencies(atan2 asm)

View file

@ -0,0 +1,10 @@
list(APPEND CRT_CONIO_SOURCE
conio/cgets.c
conio/cputs.c
conio/getch.c
conio/getche.c
conio/kbhit.c
conio/putch.c
conio/ungetch.c
)

View file

@ -1,611 +1,42 @@
list(APPEND CRT_SOURCE
conio/cgets.c
conio/cputs.c
conio/getch.c
conio/getche.c
conio/kbhit.c
conio/putch.c
conio/ungetch.c
direct/chdir.c
direct/chdrive.c
direct/getcwd.c
direct/getdcwd.c
direct/getdfree.c
direct/getdrive.c
direct/mkdir.c
direct/rmdir.c
direct/wchdir.c
direct/wgetcwd.c
direct/wgetdcwd.c
direct/wmkdir.c
direct/wrmdir.c
except/matherr.c
except/stack.c
float/chgsign.c
float/copysign.c
float/fpclass.c
float/fpecode.c
float/isnan.c
float/nafter.c
float/scalb.c
${CRT_CONIO_SOURCE}
${CRT_DIRECT_SOURCE}
${CRT_EXCEPT_SOURCE}
${CRT_FLOAT_SOURCE}
locale/locale.c
math/abs.c
math/acos.c
math/adjust.c
math/asin.c
math/cabs.c
math/cosf.c
math/cosh.c
math/div.c
math/fdivbug.c
math/frexp.c
math/huge_val.c
math/hypot.c
math/ieee754/j0_y0.c
math/ieee754/j1_y1.c
math/ieee754/jn_yn.c
math/j0_y0.c
math/j1_y1.c
math/jn_yn.c
math/labs.c
math/ldiv.c
math/logf.c
math/modf.c
math/powf.c
math/rand.c
math/s_modf.c
math/sinf.c
math/sinh.c
math/tanh.c
mbstring/_setmbcp.c
mbstring/hanzen.c
mbstring/ischira.c
mbstring/iskana.c
mbstring/iskmoji.c
mbstring/iskpun.c
mbstring/islead.c
mbstring/islwr.c
mbstring/ismbal.c
mbstring/ismbaln.c
mbstring/ismbc.c
mbstring/ismbgra.c
mbstring/ismbkaln.c
mbstring/ismblead.c
mbstring/ismbpri.c
mbstring/ismbpun.c
mbstring/ismbtrl.c
mbstring/isuppr.c
mbstring/jistojms.c
mbstring/jmstojis.c
mbstring/mbbtype.c
mbstring/mbccpy.c
mbstring/mbclen.c
mbstring/mbscat.c
mbstring/mbschr.c
mbstring/mbscmp.c
mbstring/mbscoll.c
mbstring/mbscpy.c
mbstring/mbscspn.c
mbstring/mbsdec.c
mbstring/mbsdup.c
mbstring/mbsicmp.c
mbstring/mbsicoll.c
mbstring/mbsinc.c
mbstring/mbslen.c
mbstring/mbslwr.c
mbstring/mbsncat.c
mbstring/mbsnccnt.c
mbstring/mbsncmp.c
mbstring/mbsncoll.c
mbstring/mbsncpy.c
mbstring/mbsnextc.c
mbstring/mbsnicmp.c
mbstring/mbsnicoll.c
mbstring/mbsninc.c
mbstring/mbsnset.c
mbstring/mbspbrk.c
mbstring/mbsrchr.c
mbstring/mbsrev.c
mbstring/mbsset.c
mbstring/mbsspn.c
mbstring/mbsspnp.c
mbstring/mbsstr.c
mbstring/mbstok.c
mbstring/mbstrlen.c
mbstring/mbsupr.c
mem/memcmp.c
mem/memccpy.c
mem/memicmp.c
misc/__crt_MessageBoxA.c
misc/amsg.c
misc/assert.c
misc/environ.c
misc/fltused.c
misc/getargs.c
misc/i10output.c
misc/initterm.c
misc/lock.c
misc/purecall.c
misc/stubs.c
misc/tls.c
printf/_cprintf.c
printf/_cwprintf.c
printf/_scprintf.c
printf/_scwprintf.c
printf/_snprintf.c
printf/_snprintf_s.c
printf/_snwprintf.c
printf/_snwprintf_s.c
printf/_vcprintf.c
printf/_vcwprintf.c
printf/_vscprintf.c
printf/_vscwprintf.c
printf/_vsnprintf.c
printf/_vsnprintf_s.c
printf/_vsnwprintf.c
printf/_vsnwprintf_s.c
printf/_vsprintf_p.c
printf/fprintf.c
printf/fprintf_s.c
printf/fwprintf.c
printf/fwprintf_s.c
printf/printf.c
printf/printf_s.c
printf/sprintf.c
printf/sprintf_s.c
printf/streamout.c
printf/swprintf.c
printf/swprintf_s.c
printf/vfprintf.c
printf/vfprintf_s.c
printf/vfwprintf.c
printf/vfwprintf_s.c
printf/vprintf.c
printf/vprintf_s.c
printf/vsprintf.c
printf/vsprintf_s.c
printf/vswprintf.c
printf/vswprintf_s.c
printf/vwprintf.c
printf/vwprintf_s.c
printf/wprintf.c
printf/wprintf_s.c
printf/wstreamout.c
process/_cwait.c
process/_system.c
process/dll.c
process/process.c
process/procid.c
process/thread.c
process/threadid.c
process/threadx.c
process/wprocess.c
search/bsearch.c
search/lfind.c
search/lsearch.c
${CRT_MATH_SOURCE}
${CRT_MBSTRING_SOURCE}
${CRT_MEM_SOURCE}
${CRT_MISC_SOURCE}
${CRT_PRINTF_SOURCE}
${CRT_PROCESS_SOURCE}
${CRT_SEARCH_SOURCE}
signal/signal.c
signal/xcptinfo.c
startup/crtexe.c
startup/wcrtexe.c
startup/crt_handler.c
startup/crtdll.c
startup/_newmode.c
startup/wildcard.c
startup/tlssup.c
startup/mingw_helpers.c
startup/natstart.c
startup/charmax.c
#startup/merr.c
startup/atonexit.c
#startup/txtmode.c
startup/pesect.c
startup/tlsmcrt.c
startup/tlsthrd.c
startup/tlsmthread.c
startup/cinitexe.c
startup/gs_support.c
startup/dll_argv.c
startup/dllargv.c
startup/wdllargv.c
startup/crt0_c.c
startup/crt0_w.c
startup/dllentry.c
startup/reactos.c
stdio/_flsbuf.c
stdio/_flswbuf.c
stdio/access.c
stdio/file.c
stdio/find.c
stdio/find64.c
stdio/findi64.c
stdio/fmode.c
stdio/perror.c
stdio/popen.c
stdio/stat.c
stdio/stat64.c
stdio/waccess.c
stdio/wfind.c
stdio/wfind64.c
stdio/wfindi64.c
stdio/wpopen.c
stdio/wstat.c
stdio/wstat64.c
stdlib/_exit.c
stdlib/_set_abort_behavior.c
stdlib/abort.c
stdlib/atexit.c
stdlib/ecvt.c
stdlib/errno.c
stdlib/fcvt.c
stdlib/fcvtbuf.c
stdlib/fullpath.c
stdlib/gcvt.c
stdlib/getenv.c
stdlib/makepath.c
stdlib/makepath_s.c
stdlib/mbtowc.c
stdlib/mbstowcs.c
stdlib/obsol.c
stdlib/putenv.c
stdlib/qsort.c
stdlib/rot.c
stdlib/senv.c
stdlib/swab.c
stdlib/wfulpath.c
stdlib/wputenv.c
stdlib/wsenv.c
stdlib/wmakpath.c
stdlib/wmakpath_s.c
string/_mbsnlen.c
string/_mbstrnlen.c
string/_splitpath.c
string/_splitpath_s.c
string/_wcslwr_s.c
string/_wsplitpath.c
string/_wsplitpath_s.c
string/atof.c
string/atoi.c
string/atoi64.c
string/atol.c
string/ctype.c
string/iswctype.c
string/is_wctype.c
string/itoa.c
string/itow.c
string/mbstowcs_s.c
string/scanf.c
string/strcoll.c
string/strcspn.c
string/strdup.c
string/strerror.c
string/stricmp.c
string/string.c
string/strlwr.c
string/strncoll.c
string/strnicmp.c
string/strpbrk.c
string/strrev.c
string/strset.c
string/strspn.c
string/strstr.c
string/strtod.c
string/strtoi64.c
string/strtok.c
string/strtok_s.c
string/strtol.c
string/strtoul.c
string/strtoull.c
string/strupr.c
string/strxfrm.c
string/wcs.c
string/wcstol.c
string/wcstombs_s.c
string/wcstoul.c
string/wctype.c
string/wtof.c
string/wtoi.c
string/wtoi64.c
string/wtol.c
string/winesup.c
${CRT_STARTUP_SOURCE}
${CRT_STDIO_SOURCE}
${CRT_STDLIB_SOURCE}
${CRT_STRING_SOURCE}
sys_stat/systime.c
time/asctime.c
time/clock.c
time/ctime32.c
time/ctime64.c
time/ctime.c
time/difftime32.c
time/difftime64.c
time/difftime.c
time/ftime32.c
time/ftime64.c
time/ftime.c
time/futime32.c
time/futime64.c
time/futime.c
time/gmtime.c
time/localtime32.c
time/localtime64.c
time/localtime.c
time/mktime.c
time/strdate.c
time/strftime.c
time/strtime.c
time/time32.c
time/time64.c
time/time.c
time/timezone.c
time/utime32.c
time/utime64.c
time/utime.c
time/wasctime.c
time/wctime32.c
time/wctime64.c
time/wctime.c
time/wstrdate.c
time/wstrtime.c
time/wutime32.c
time/wutime64.c
time/wutime.c
wstring/wcscoll.c
wstring/wcscspn.c
wstring/wcsicmp.c
wstring/wcslwr.c
wstring/wcsnicmp.c
wstring/wcsspn.c
wstring/wcsstr.c
wstring/wcstok.c
wstring/wcsupr.c
wstring/wcsxfrm.c)
${CRT_TIME_SOURCE}
${CRT_WINE_SOURCE}
${CRT_WSTRING_SOURCE}
)
list(APPEND CRT_WINE_SOURCE
wine/cpp.c
wine/except.c
wine/heap.c
wine/undname.c)
if(ARCH STREQUAL "i386")
list(APPEND CRT_ASM_SOURCE
except/i386/chkesp.s
except/i386/prolog.s
math/i386/alldiv_asm.s
math/i386/alldvrm_asm.s
math/i386/allmul_asm.s
math/i386/allrem_asm.s
math/i386/allshl_asm.s
math/i386/allshr_asm.s
math/i386/atan_asm.s
math/i386/aulldiv_asm.s
math/i386/aulldvrm_asm.s
math/i386/aullrem_asm.s
math/i386/aullshr_asm.s
math/i386/ceil_asm.s
math/i386/ceilf.S
math/i386/cos_asm.s
math/i386/fabs_asm.s
math/i386/floor_asm.s
math/i386/floorf.S
math/i386/ftol_asm.s
math/i386/ftol2_asm.s
math/i386/log_asm.s
math/i386/log10_asm.s
math/i386/pow_asm.s
math/i386/sin_asm.s
math/i386/sqrt_asm.s
math/i386/tan_asm.s
math/i386/atan2_asm.s
math/i386/exp_asm.s
math/i386/fmod_asm.s
math/i386/fmodf_asm.s
mem/i386/memchr_asm.s
mem/i386/memmove_asm.s
mem/i386/memset_asm.s
misc/i386/readcr4.S
setjmp/i386/setjmp.s
string/i386/strcat_asm.s
string/i386/strchr_asm.s
string/i386/strcmp_asm.s
string/i386/strcpy_asm.s
string/i386/strlen_asm.s
string/i386/strncat_asm.s
string/i386/strncmp_asm.s
string/i386/strncpy_asm.s
string/i386/strnlen_asm.s
string/i386/strrchr_asm.s
string/i386/wcscat_asm.s
string/i386/wcschr_asm.s
string/i386/wcscmp_asm.s
string/i386/wcscpy_asm.s
string/i386/wcslen_asm.s
string/i386/wcsncat_asm.s
string/i386/wcsncmp_asm.s
string/i386/wcsncpy_asm.s
string/i386/wcsnlen_asm.s
string/i386/wcsrchr_asm.s)
list(APPEND CRT_SOURCE
float/i386/clearfp.c
float/i386/cntrlfp.c
float/i386/fpreset.c
float/i386/logb.c
float/i386/statfp.c
math/i386/ci.c
math/i386/cicos.c
math/i386/cilog.c
math/i386/cipow.c
math/i386/cisin.c
math/i386/cisqrt.c
math/i386/ldexp.c)
list(APPEND CRT_WINE_SOURCE
wine/except_i386.c)
if(MSVC)
list(APPEND CRT_ASM_SOURCE
except/i386/cpp.s)
endif()
if(USE_CLANG_CL)
list(APPEND CRT_ASM_SOURCE
stdlib/clang-alias.s)
endif()
elseif(ARCH STREQUAL "amd64")
list(APPEND CRT_ASM_SOURCE
except/amd64/seh.s
float/amd64/clearfp.S
float/amd64/getsetfpcw.S
float/amd64/fpreset.S
float/amd64/logb.S
# math/amd64/acos.S
# math/amd64/acosf.S
math/amd64/atan.S
math/amd64/atan2.S
math/amd64/ceil.S
# math/amd64/ceilf.S
math/amd64/exp.S
math/amd64/fabs.S
math/amd64/floor.S
# math/amd64/floorf.S
math/amd64/fmod.S
# math/amd64/fmodf.S
math/amd64/ldexp.S
math/amd64/log.S
math/amd64/log10.S
math/amd64/pow.S
math/amd64/sqrt.S
# math/amd64/sqrtf.S
math/amd64/tan.S
setjmp/amd64/setjmp.s)
list(APPEND CRT_SOURCE
except/amd64/ehandler.c
float/i386/cntrlfp.c
float/i386/statfp.c)
list(APPEND CRT_WINE_SOURCE
wine/except_x86_64.c)
if(MSVC)
list(APPEND CRT_ASM_SOURCE
except/amd64/cpp.s)
if (CMAKE_C_COMPILER_ID STREQUAL "Clang")
list(APPEND CRT_ASM_SOURCE
stdlib/clang-alias.s)
endif()
endif()
elseif(ARCH STREQUAL "arm")
list(APPEND CRT_SOURCE
except/arm/ehandler.c
math/fabsf.c
math/sqrt.c
math/arm/__rt_sdiv.c
math/arm/__rt_sdiv64_worker.c
math/arm/__rt_udiv.c
math/arm/__rt_udiv64_worker.c
)
list(APPEND CRT_WINE_SOURCE
wine/except_arm.c
)
list(APPEND CRT_ASM_SOURCE
except/arm/_abnormal_termination.s
except/arm/_except_handler2.s
except/arm/_except_handler3.s
except/arm/_global_unwind2.s
except/arm/_local_unwind2.s
except/arm/chkstk_asm.s
float/arm/_clearfp.s
float/arm/_controlfp.s
float/arm/_fpreset.s
float/arm/_statusfp.s
math/arm/atan.s
math/arm/atan2.s
math/arm/ceil.s
math/arm/exp.s
math/arm/fabs.s
math/arm/fmod.s
math/arm/floor.s
math/arm/ldexp.s
math/arm/log.s
math/arm/log10.s
math/arm/pow.s
math/arm/tan.s
math/arm/_logb.s
math/arm/__dtoi64.s
math/arm/__dtou64.s
math/arm/__i64tod.s
math/arm/__i64tos.s
math/arm/__stoi64.s
math/arm/__stou64.s
math/arm/__u64tod.s
math/arm/__u64tos.s
math/arm/__rt_sdiv64.s
math/arm/__rt_srsh.s
math/arm/__rt_udiv64.s
setjmp/arm/setjmp.s
)
if(MSVC)
list(APPEND CRT_ASM_SOURCE
except/arm/cpp.s)
endif()
endif()
if(NOT ARCH STREQUAL "i386")
list(APPEND CRT_SOURCE
math/_chgsignf.c
math/_copysignf.c
math/_hypotf.c
math/acosf.c
math/asinf.c
math/atan2f.c
math/atanf.c
math/ceilf.c
math/cos.c
math/coshf.c
math/expf.c
math/floorf.c
math/fmodf.c
math/log10f.c
math/modff.c
math/sin.c
math/sinhf.c
math/sqrtf.c
math/tanf.c
math/tanhf.c
math/stubs.c
mem/memchr.c
mem/memcpy.c
mem/memmove.c
mem/memset.c
string/strcat.c
string/strchr.c
string/strcmp.c
string/strcpy.c
string/strlen.c
string/strncat.c
string/strncmp.c
string/strncpy.c
string/strnlen.c
string/strrchr.c
string/wcscat.c
string/wcschr.c
string/wcscmp.c
string/wcscpy.c
string/wcslen.c
string/wcsncat.c
string/wcsncmp.c
string/wcsncpy.c
string/wcsnlen.c
string/wcsrchr.c)
endif()
# includes for wine code
include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine)
list(APPEND CRT_ASM_SOURCE
${CRT_EXCEPT_ASM_SOURCE}
${CRT_FLOAT_ASM_SOURCE}
${CRT_MATH_ASM_SOURCE}
${CRT_SETJMP_ASM_SOURCE}
${CRT_STDLIB_ASM_SOURCE}
${CRT_STRING_ASM_SOURCE}
)
set_source_files_properties(${CRT_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "__MINGW_IMPORT=extern;USE_MSVCRT_PREFIX;_MSVCRT_LIB_;_MSVCRT_;_MT;CRTDLL")
add_asm_files(crt_asm ${CRT_ASM_SOURCE})
if(USE_CLANG_CL)
# clang-cl is missing pragma function support
# https://bugs.llvm.org/show_bug.cgi?id=35116
set_property(SOURCE stdlib/rot.c APPEND_STRING PROPERTY COMPILE_FLAGS " /fallback")
endif()
add_library(crt ${CRT_SOURCE} ${CRT_WINE_SOURCE} ${crt_asm})
add_library(crt ${CRT_SOURCE} ${crt_asm})
target_link_libraries(crt chkstk ${PSEH_LIB})
target_compile_definitions(crt
PRIVATE __MINGW_IMPORT=extern

View file

@ -0,0 +1,16 @@
list(APPEND CRT_DIRECT_SOURCE
direct/chdir.c
direct/chdrive.c
direct/getcwd.c
direct/getdcwd.c
direct/getdfree.c
direct/getdrive.c
direct/mkdir.c
direct/rmdir.c
direct/wchdir.c
direct/wgetcwd.c
direct/wgetdcwd.c
direct/wmkdir.c
direct/wrmdir.c
)

View file

@ -0,0 +1,85 @@
if(ARCH STREQUAL "i386")
list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE
except/i386/chkstk_asm.s
)
if(NOT MSVC)
list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE
except/i386/chkstk_ms.s)
endif()
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/i386/chkesp.s
except/i386/prolog.s
)
if(MSVC)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/i386/cpp.s)
endif()
elseif(ARCH STREQUAL "amd64")
list(APPEND LIBCNTPR_EXCEPT_SOURCE
except/amd64/ehandler.c
)
list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE
except/amd64/chkstk_ms.s
except/amd64/seh.s
)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/amd64/seh.s
)
if(MSVC)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/amd64/cpp.s)
endif()
elseif(ARCH STREQUAL "arm")
list(APPEND LIBCNTPR_EXCEPT_SOURCE
except/arm/ehandler.c
)
list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE
except/arm/__jump_unwind.s
except/arm/_abnormal_termination.s
except/arm/_except_handler2.s
except/arm/_except_handler3.s
except/arm/_global_unwind2.s
except/arm/_local_unwind2.s
except/arm/chkstk_asm.s
)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/arm/_abnormal_termination.s
except/arm/_except_handler2.s
except/arm/_except_handler3.s
except/arm/_global_unwind2.s
except/arm/_local_unwind2.s
except/arm/chkstk_asm.s
)
if(MSVC)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/arm/cpp.s)
endif()
endif()
list(APPEND CRT_EXCEPT_SOURCE
${LIBCNTPR_EXCEPT_SOURCE}
except/matherr.c
except/stack.c
)
if(ARCH STREQUAL "i386")
list(APPEND CHKSTK_ASM_SOURCE except/i386/chkstk_asm.s)
if(NOT MSVC)
list(APPEND CHKSTK_ASM_SOURCE except/i386/chkstk_ms.s)
endif()
elseif(ARCH STREQUAL "amd64")
list(APPEND CHKSTK_ASM_SOURCE except/amd64/chkstk_ms.s)
elseif(ARCH STREQUAL "arm")
list(APPEND CHKSTK_ASM_SOURCE except/arm/chkstk_asm.s)
if(NOT MSVC)
list(APPEND CHKSTK_ASM_SOURCE except/arm/chkstk_ms.s)
endif()
elseif(ARCH STREQUAL "powerpc")
list(APPEND CHKSTK_ASM_SOURCE except/powerpc/chkstk_asm.s)
endif()
add_asm_files(chkstk_lib_asm ${CHKSTK_ASM_SOURCE})
add_library(chkstk ${CHKSTK_SOURCE} ${chkstk_lib_asm})
set_target_properties(chkstk PROPERTIES LINKER_LANGUAGE "C")
add_dependencies(chkstk asm)

View file

@ -0,0 +1,42 @@
list(APPEND LIBCNTPR_FLOAT_SOURCE
float/isnan.c
)
list(APPEND CRT_FLOAT_SOURCE
${LIBCNTPR_FLOAT_SOURCE}
float/chgsign.c
float/copysign.c
float/fpclass.c
float/fpecode.c
float/nafter.c
float/scalb.c
)
if(ARCH STREQUAL "i386")
list(APPEND CRT_FLOAT_SOURCE
float/i386/clearfp.c
float/i386/cntrlfp.c
float/i386/fpreset.c
float/i386/logb.c
float/i386/statfp.c
)
elseif(ARCH STREQUAL "amd64")
list(APPEND CRT_FLOAT_SOURCE
float/i386/cntrlfp.c
float/i386/statfp.c
)
list(APPEND CRT_FLOAT_ASM_SOURCE
float/amd64/clearfp.S
float/amd64/getsetfpcw.S
float/amd64/fpreset.S
float/amd64/logb.S
)
elseif(ARCH STREQUAL "arm")
list(APPEND CRT_FLOAT_ASM_SOURCE
float/arm/_clearfp.s
float/arm/_controlfp.s
float/arm/_fpreset.s
float/arm/_statusfp.s
)
endif()

View file

@ -1,241 +1,26 @@
list(APPEND LIBCNTPR_SOURCE
float/isnan.c
math/abs.c
math/div.c
math/labs.c
math/rand_nt.c
mbstring/mbstrlen.c
mem/memccpy.c
mem/memcmp.c
mem/memicmp.c
misc/fltused.c
printf/_snprintf.c
printf/_snwprintf.c
printf/_vscprintf.c
printf/_vscwprintf.c
printf/_vsnprintf.c
printf/_vsnwprintf.c
printf/sprintf.c
printf/streamout.c
printf/swprintf.c
printf/vprintf.c
printf/vsprintf.c
printf/vswprintf.c
printf/wstreamout.c
search/bsearch.c
search/lfind.c
stdlib/qsort.c
string/_splitpath.c
string/_wsplitpath.c
string/ctype.c
string/iswctype.c
string/is_wctype.c
string/scanf.c
string/strcspn.c
string/stricmp.c
string/strnicmp.c
string/strlwr.c
string/strrev.c
string/strset.c
string/strstr.c
string/strupr.c
string/strpbrk.c
string/strspn.c
string/atoi64.c
string/atoi.c
string/atol.c
string/itoa.c
string/itow.c
string/mbstowcs_nt.c
string/strtoi64.c
string/strtol.c
string/strtoul.c
string/strtoull.c
string/wcs.c
string/wcstol.c
string/wcstombs_nt.c
string/wcstoul.c
string/wctype.c
string/wtoi64.c
string/wtoi.c
string/wtol.c
string/winesup.c
wstring/wcsicmp.c
wstring/wcslwr.c
wstring/wcsnicmp.c
wstring/wcsupr.c
wstring/wcscspn.c
wstring/wcsspn.c
wstring/wcsstr.c)
${LIBCNTPR_EXCEPT_SOURCE}
${LIBCNTPR_FLOAT_SOURCE}
${LIBCNTPR_MATH_SOURCE}
${LIBCNTPR_MBSTRING_SOURCE}
${LIBCNTPR_MEM_SOURCE}
${LIBCNTPT_MISC_SOURCE}
${LIBCNTPR_PRINTF_SOURCE}
${LIBCNTPR_SEARCH_SOURCE}
${LIBCNTPR_STDLIB_SOURCE}
${LIBCNTPR_STRING_SOURCE}
${LIBCNTPR_WSTRING_SOURCE}
)
if(ARCH STREQUAL "i386")
list(APPEND LIBCNTPR_ASM_SOURCE
except/i386/chkstk_asm.s
setjmp/i386/setjmp.s
math/i386/alldiv_asm.s
math/i386/alldvrm_asm.s
math/i386/allmul_asm.s
math/i386/allrem_asm.s
math/i386/allshl_asm.s
math/i386/allshr_asm.s
math/i386/atan_asm.s
math/i386/atan2_asm.s
math/i386/aulldiv_asm.s
math/i386/aulldvrm_asm.s
math/i386/aullrem_asm.s
math/i386/aullshr_asm.s
math/i386/ceil_asm.s
math/i386/cos_asm.s
math/i386/fabs_asm.s
math/i386/floor_asm.s
math/i386/ftol_asm.s
math/i386/ftol2_asm.s
math/i386/log_asm.s
math/i386/log10_asm.s
math/i386/pow_asm.s
math/i386/sin_asm.s
math/i386/sqrt_asm.s
math/i386/tan_asm.s
misc/i386/readcr4.S)
list(APPEND LIBCNTPR_SOURCE
math/i386/ci.c
math/i386/cicos.c
math/i386/cilog.c
math/i386/cipow.c
math/i386/cisin.c
math/i386/cisqrt.c
math/i386/ldexp.c)
if(NOT MSVC)
list(APPEND LIBCNTPR_SOURCE except/i386/chkstk_ms.s)
endif()
elseif(ARCH STREQUAL "amd64")
list(APPEND LIBCNTPR_ASM_SOURCE
except/amd64/chkstk_ms.s
except/amd64/seh.s
setjmp/amd64/setjmp.s
math/amd64/atan.S
math/amd64/atan2.S
math/amd64/ceil.S
math/amd64/exp.S
math/amd64/fabs.S
math/amd64/floor.S
math/amd64/floorf.S
math/amd64/fmod.S
math/amd64/ldexp.S
math/amd64/log.S
math/amd64/log10.S
math/amd64/pow.S
math/amd64/sqrt.S
math/amd64/tan.S)
list(APPEND LIBCNTPR_SOURCE
except/amd64/ehandler.c
math/cos.c
math/sin.c)
elseif(ARCH STREQUAL "arm")
list(APPEND LIBCNTPR_SOURCE
except/arm/chkstk_asm.s
except/arm/__jump_unwind.s
math/sqrt.c
math/arm/__rt_sdiv.c
math/arm/__rt_sdiv64_worker.c
math/arm/__rt_udiv.c
math/arm/__rt_udiv64_worker.c
)
list(APPEND LIBCNTPR_ASM_SOURCE
except/arm/_abnormal_termination.s
except/arm/_except_handler2.s
except/arm/_except_handler3.s
except/arm/_global_unwind2.s
except/arm/_local_unwind2.s
except/arm/chkstk_asm.s
except/arm/ehandler.c
float/arm/_clearfp.s
float/arm/_controlfp.s
float/arm/_fpreset.s
float/arm/_statusfp.s
math/arm/atan.s
math/arm/atan2.s
math/arm/ceil.s
math/arm/exp.s
math/arm/fabs.s
math/arm/fmod.s
math/arm/floor.s
math/arm/ldexp.s
math/arm/log.s
math/arm/log10.s
math/arm/pow.s
math/arm/tan.s
math/arm/__dtoi64.s
math/arm/__dtou64.s
math/arm/__i64tod.s
math/arm/__i64tos.s
math/arm/__stoi64.s
math/arm/__stou64.s
math/arm/__u64tod.s
math/arm/__u64tos.s
math/arm/__rt_sdiv64.s
math/arm/__rt_srsh.s
math/arm/__rt_udiv64.s
setjmp/arm/setjmp.s
)
endif()
if(ARCH STREQUAL "i386")
list(APPEND LIBCNTPR_ASM_SOURCE
mem/i386/memchr_asm.s
mem/i386/memmove_asm.s
mem/i386/memset_asm.s
string/i386/strcat_asm.s
string/i386/strchr_asm.s
string/i386/strcmp_asm.s
string/i386/strcpy_asm.s
string/i386/strlen_asm.s
string/i386/strncat_asm.s
string/i386/strncmp_asm.s
string/i386/strncpy_asm.s
string/i386/strnlen_asm.s
string/i386/strrchr_asm.s
string/i386/wcscat_asm.s
string/i386/wcschr_asm.s
string/i386/wcscmp_asm.s
string/i386/wcscpy_asm.s
string/i386/wcslen_asm.s
string/i386/wcsncat_asm.s
string/i386/wcsncmp_asm.s
string/i386/wcsncpy_asm.s
string/i386/wcsnlen_asm.s
string/i386/wcsrchr_asm.s)
else()
list(APPEND LIBCNTPR_SOURCE
math/cos.c
math/sin.c
mem/memchr.c
mem/memcpy.c
mem/memmove.c
mem/memset.c
string/strcat.c
string/strchr.c
string/strcmp.c
string/strcpy.c
string/strlen.c
string/strncat.c
string/strncmp.c
string/strncpy.c
string/strnlen.c
string/strrchr.c
string/wcscat.c
string/wcschr.c
string/wcscmp.c
string/wcscpy.c
string/wcslen.c
string/wcsncat.c
string/wcsncmp.c
string/wcsncpy.c
string/wcsnlen.c
string/wcsrchr.c)
endif()
list(APPEND LIBCNTPR_ASM_SOURCE
${LIBCNTPR_EXCEPT_ASM_SOURCE}
${LIBCNTPR_FLOAT_ASM_SOURCE}
${LIBCNTPR_MATH_ASM_SOURCE}
${LIBCNTPR_MEM_ASM_SOURCE}
${LIBCNTPR_SETJMP_ASM_SOURCE}
${LIBCNTPR_STRING_ASM_SOURCE}
)
set_source_files_properties(${LIBCNTPR_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "NO_RTL_INLINES;_NTSYSTEM_;_NTDLLBUILD_;_LIBCNT_;__CRT__NO_INLINE;CRTDLL")
add_asm_files(libcntpr_asm ${LIBCNTPR_ASM_SOURCE})

189
sdk/lib/crt/math/math.cmake Normal file
View file

@ -0,0 +1,189 @@
list(APPEND LIBCNTPR_MATH_SOURCE
math/abs.c
math/div.c
math/labs.c
)
if(ARCH STREQUAL "i386")
list(APPEND LIBCNTPR_MATH_SOURCE
math/i386/ci.c
math/i386/cicos.c
math/i386/cilog.c
math/i386/cipow.c
math/i386/cisin.c
math/i386/cisqrt.c
math/i386/ldexp.c
)
list(APPEND LIBCNTPR_MATH_ASM_SOURCE
math/i386/alldiv_asm.s
math/i386/alldvrm_asm.s
math/i386/allmul_asm.s
math/i386/allrem_asm.s
math/i386/allshl_asm.s
math/i386/allshr_asm.s
math/i386/atan_asm.s
math/i386/atan2_asm.s
math/i386/aulldiv_asm.s
math/i386/aulldvrm_asm.s
math/i386/aullrem_asm.s
math/i386/aullshr_asm.s
math/i386/ceil_asm.s
math/i386/cos_asm.s
math/i386/fabs_asm.s
math/i386/floor_asm.s
math/i386/ftol_asm.s
math/i386/ftol2_asm.s
math/i386/log_asm.s
math/i386/log10_asm.s
math/i386/pow_asm.s
math/i386/sin_asm.s
math/i386/sqrt_asm.s
math/i386/tan_asm.s
)
list(APPEND CRT_MATH_ASM_SOURCE
math/i386/ceilf.S
math/i386/floorf.S
math/i386/exp_asm.s
math/i386/fmod_asm.s
math/i386/fmodf_asm.s
)
elseif(ARCH STREQUAL "amd64")
list(APPEND LIBCNTPR_MATH_SOURCE
math/cos.c
math/sin.c
)
list(APPEND LIBCNTPR_MATH_ASM_SOURCE
math/amd64/atan.S
math/amd64/atan2.S
math/amd64/ceil.S
math/amd64/exp.S
math/amd64/fabs.S
math/amd64/floor.S
math/amd64/floorf.S
math/amd64/fmod.S
math/amd64/ldexp.S
math/amd64/log.S
math/amd64/log10.S
math/amd64/pow.S
math/amd64/sqrt.S
math/amd64/tan.S
)
elseif(ARCH STREQUAL "arm")
list(APPEND LIBCNTPR_MATH_SOURCE
math/cos.c
math/sin.c
math/sqrt.c
math/arm/__rt_sdiv.c
math/arm/__rt_sdiv64_worker.c
math/arm/__rt_udiv.c
math/arm/__rt_udiv64_worker.c
)
list(APPEND CRT_MATH_SOURCE
math/fabsf.c
)
list(APPEND LIBCNTPR_MATH_ASM_SOURCE
math/arm/atan.s
math/arm/atan2.s
math/arm/ceil.s
math/arm/exp.s
math/arm/fabs.s
math/arm/fmod.s
math/arm/floor.s
math/arm/ldexp.s
math/arm/log.s
math/arm/log10.s
math/arm/pow.s
math/arm/tan.s
math/arm/__dtoi64.s
math/arm/__dtou64.s
math/arm/__i64tod.s
math/arm/__i64tos.s
math/arm/__stoi64.s
math/arm/__stou64.s
math/arm/__u64tod.s
math/arm/__u64tos.s
math/arm/__rt_sdiv64.s
math/arm/__rt_srsh.s
math/arm/__rt_udiv64.s
)
list(APPEND CRT_MATH_ASM_SOURCE
math/arm/_logb.s
)
endif()
if(NOT ARCH STREQUAL "i386")
list(APPEND CRT_MATH_SOURCE
math/_chgsignf.c
math/_copysignf.c
math/_hypotf.c
math/acosf.c
math/asinf.c
math/atan2f.c
math/atanf.c
math/ceilf.c
math/cos.c
math/coshf.c
math/expf.c
math/floorf.c
math/fmodf.c
math/log10f.c
math/modff.c
math/sin.c
math/sinhf.c
math/sqrtf.c
math/tanf.c
math/tanhf.c
math/stubs.c
)
endif()
list(APPEND CRT_MATH_SOURCE
${LIBCNTPR_MATH_SOURCE}
math/acos.c
math/adjust.c
math/asin.c
math/cabs.c
math/cosf.c
math/cosh.c
math/fdivbug.c
math/frexp.c
math/huge_val.c
math/hypot.c
math/ieee754/j0_y0.c
math/ieee754/j1_y1.c
math/ieee754/jn_yn.c
math/j0_y0.c
math/j1_y1.c
math/jn_yn.c
math/ldiv.c
math/logf.c
math/modf.c
math/powf.c
math/rand.c
math/s_modf.c
math/sinf.c
math/sinh.c
math/tanh.c
)
list(APPEND CRT_MATH_ASM_SOURCE
${LIBCNTPR_MATH_ASM_SOURCE}
)
list(APPEND LIBCNTPR_MATH_SOURCE
math/rand_nt.c
)
if(ARCH STREQUAL "i386")
list(APPEND ATAN2_ASM_SOURCE math/i386/atan2_asm.s)
elseif(ARCH STREQUAL "amd64")
list(APPEND ATAN2_ASM_SOURCE math/amd64/atan2.S)
elseif(ARCH STREQUAL "arm")
list(APPEND ATAN2_ASM_SOURCE math/arm/atan2.s)
endif()
add_asm_files(atan2_asm ${ATAN2_ASM_SOURCE})
add_library(atan2 ${atan2_asm})
set_target_properties(atan2 PROPERTIES LINKER_LANGUAGE "C")
add_dependencies(atan2 asm)

View file

@ -0,0 +1,63 @@
list(APPEND LIBCNTPR_MBSTRING_SOURCE
mbstring/mbstrlen.c
)
list(APPEND CRT_MBSTRING_SOURCE
${LIBCNTPR_MBSTRING_SOURCE}
mbstring/_setmbcp.c
mbstring/hanzen.c
mbstring/ischira.c
mbstring/iskana.c
mbstring/iskmoji.c
mbstring/iskpun.c
mbstring/islead.c
mbstring/islwr.c
mbstring/ismbal.c
mbstring/ismbaln.c
mbstring/ismbc.c
mbstring/ismbgra.c
mbstring/ismbkaln.c
mbstring/ismblead.c
mbstring/ismbpri.c
mbstring/ismbpun.c
mbstring/ismbtrl.c
mbstring/isuppr.c
mbstring/jistojms.c
mbstring/jmstojis.c
mbstring/mbbtype.c
mbstring/mbccpy.c
mbstring/mbclen.c
mbstring/mbscat.c
mbstring/mbschr.c
mbstring/mbscmp.c
mbstring/mbscoll.c
mbstring/mbscpy.c
mbstring/mbscspn.c
mbstring/mbsdec.c
mbstring/mbsdup.c
mbstring/mbsicmp.c
mbstring/mbsicoll.c
mbstring/mbsinc.c
mbstring/mbslen.c
mbstring/mbslwr.c
mbstring/mbsncat.c
mbstring/mbsnccnt.c
mbstring/mbsncmp.c
mbstring/mbsncoll.c
mbstring/mbsncpy.c
mbstring/mbsnextc.c
mbstring/mbsnicmp.c
mbstring/mbsnicoll.c
mbstring/mbsninc.c
mbstring/mbsnset.c
mbstring/mbspbrk.c
mbstring/mbsrchr.c
mbstring/mbsrev.c
mbstring/mbsset.c
mbstring/mbsspn.c
mbstring/mbsspnp.c
mbstring/mbsstr.c
mbstring/mbstok.c
mbstring/mbsupr.c
)

32
sdk/lib/crt/mem/mem.cmake Normal file
View file

@ -0,0 +1,32 @@
list(APPEND LIBCNTPR_MEM_SOURCE
mem/memccpy.c
mem/memcmp.c
mem/memicmp.c
)
if(ARCH STREQUAL "i386")
list(APPEND LIBCNTPR_MEM_ASM_SOURCE
mem/i386/memchr_asm.s
mem/i386/memmove_asm.s
mem/i386/memset_asm.s
)
list(APPEND CRT_MEM_ASM_SOURCE
${LIBCNTPR_MEM_ASM_SOURCE}
)
else()
list(APPEND LIBCNTPR_MEM_SOURCE
mem/memchr.c
mem/memcpy.c
mem/memmove.c
mem/memset.c
)
endif()
list(APPEND CRT_MEM_SOURCE
${LIBCNTPR_MEM_SOURCE}
)
# Needed by ext2fs. Should use RtlCompareMemory instead?
add_library(memcmp mem/memcmp.c)
add_dependencies(memcmp psdk)

View file

@ -0,0 +1,29 @@
list(APPEND LIBCNTPT_MISC_SOURCE
misc/fltused.c
)
if(ARCH STREQUAL "i386")
list(APPEND LIBCNTPR_ASM_SOURCE
misc/i386/readcr4.S
)
endif()
list(APPEND CRT_MISC_SOURCE
${LIBCNTPT_MISC_SOURCE}
misc/__crt_MessageBoxA.c
misc/amsg.c
misc/assert.c
misc/environ.c
misc/getargs.c
misc/i10output.c
misc/initterm.c
misc/lock.c
misc/purecall.c
misc/stubs.c
misc/tls.c
)
add_library(getopt misc/getopt.c)
target_compile_definitions(getopt PRIVATE _DLL __USE_CRTIMP)
add_dependencies(getopt psdk)

View file

@ -0,0 +1,50 @@
list(APPEND LIBCNTPR_PRINTF_SOURCE
printf/_snprintf.c
printf/_snwprintf.c
printf/_vscprintf.c
printf/_vscwprintf.c
printf/_vsnprintf.c
printf/_vsnwprintf.c
printf/sprintf.c
printf/streamout.c
printf/swprintf.c
printf/vprintf.c
printf/vsprintf.c
printf/vswprintf.c
printf/wstreamout.c
)
list(APPEND CRT_PRINTF_SOURCE
${LIBCNTPR_PRINTF_SOURCE}
printf/_cprintf.c
printf/_cwprintf.c
printf/_scprintf.c
printf/_scwprintf.c
printf/_snprintf_s.c
printf/_snwprintf_s.c
printf/_vcprintf.c
printf/_vcwprintf.c
printf/_vsnprintf_s.c
printf/_vsnwprintf_s.c
printf/_vsprintf_p.c
printf/fprintf.c
printf/fprintf_s.c
printf/fwprintf.c
printf/fwprintf_s.c
printf/printf.c
printf/printf_s.c
printf/sprintf_s.c
printf/swprintf_s.c
printf/vfprintf.c
printf/vfprintf_s.c
printf/vfwprintf.c
printf/vfwprintf_s.c
printf/vprintf_s.c
printf/vsprintf_s.c
printf/vswprintf_s.c
printf/vwprintf.c
printf/vwprintf_s.c
printf/wprintf.c
printf/wprintf_s.c
)

View file

@ -0,0 +1,12 @@
list(APPEND CRT_PROCESS_SOURCE
process/_cwait.c
process/_system.c
process/dll.c
process/process.c
process/procid.c
process/thread.c
process/threadid.c
process/threadx.c
process/wprocess.c
)

View file

@ -0,0 +1,10 @@
list(APPEND LIBCNTPR_SEARCH_SOURCE
search/bsearch.c
search/lfind.c
)
list(APPEND CRT_SEARCH_SOURCE
${LIBCNTPR_SEARCH_SOURCE}
search/lsearch.c
)

View file

@ -0,0 +1,18 @@
if(ARCH STREQUAL "i386")
list(APPEND LIBCNTPR_SETJMP_ASM_SOURCE
setjmp/i386/setjmp.s
)
elseif(ARCH STREQUAL "amd64")
list(APPEND LIBCNTPR_SETJMP_ASM_SOURCE
setjmp/amd64/setjmp.s
)
elseif(ARCH STREQUAL "arm")
list(APPEND LIBCNTPR_SETJMP_ASM_SOURCE
setjmp/arm/setjmp.s
)
endif()
list(APPEND CRT_SETJMP_ASM_SOURCE
${LIBCNTPR_SETJMP_ASM_SOURCE}
)

View file

@ -0,0 +1,29 @@
list(APPEND CRT_STARTUP_SOURCE
startup/crtexe.c
startup/wcrtexe.c
startup/crt_handler.c
startup/crtdll.c
startup/_newmode.c
startup/wildcard.c
startup/tlssup.c
startup/mingw_helpers.c
startup/natstart.c
startup/charmax.c
#startup/merr.c
startup/atonexit.c
#startup/txtmode.c
startup/pesect.c
startup/tlsmcrt.c
startup/tlsthrd.c
startup/tlsmthread.c
startup/cinitexe.c
startup/gs_support.c
startup/dll_argv.c
startup/dllargv.c
startup/wdllargv.c
startup/crt0_c.c
startup/crt0_w.c
startup/dllentry.c
startup/reactos.c
)

View file

@ -0,0 +1,22 @@
list(APPEND CRT_STDIO_SOURCE
stdio/_flsbuf.c
stdio/_flswbuf.c
stdio/access.c
stdio/file.c
stdio/find.c
stdio/find64.c
stdio/findi64.c
stdio/fmode.c
stdio/perror.c
stdio/popen.c
stdio/stat.c
stdio/stat64.c
stdio/waccess.c
stdio/wfind.c
stdio/wfind64.c
stdio/wfindi64.c
stdio/wpopen.c
stdio/wstat.c
stdio/wstat64.c
)

View file

@ -0,0 +1,49 @@
list(APPEND LIBCNTPR_STDLIB_SOURCE
stdlib/qsort.c
)
list(APPEND CRT_STDLIB_SOURCE
${LIBCNTPR_STDLIB_SOURCE}
stdlib/_exit.c
stdlib/_set_abort_behavior.c
stdlib/abort.c
stdlib/atexit.c
stdlib/ecvt.c
stdlib/errno.c
stdlib/fcvt.c
stdlib/fcvtbuf.c
stdlib/fullpath.c
stdlib/gcvt.c
stdlib/getenv.c
stdlib/makepath.c
stdlib/makepath_s.c
stdlib/mbtowc.c
stdlib/mbstowcs.c
stdlib/obsol.c
stdlib/putenv.c
stdlib/rot.c
stdlib/senv.c
stdlib/swab.c
stdlib/wfulpath.c
stdlib/wputenv.c
stdlib/wsenv.c
stdlib/wmakpath.c
stdlib/wmakpath_s.c
)
if(USE_CLANG_CL)
# clang-cl is missing pragma function support
# https://bugs.llvm.org/show_bug.cgi?id=35116
set_property(SOURCE stdlib/rot.c APPEND_STRING PROPERTY COMPILE_FLAGS " /fallback")
if(ARCH STREQUAL "i386")
list(APPEND CRT_STDLIB_ASM_SOURCE
stdlib/clang-alias.s
)
elseif(ARCH STREQUAL "amd64")
list(APPEND CRT_STDLIB_ASM_SOURCE
stdlib/clang-alias.s
)
endif()
endif()

View file

@ -0,0 +1,128 @@
list(APPEND LIBCNTPR_STRING_SOURCE
string/_splitpath.c
string/_wsplitpath.c
string/ctype.c
string/iswctype.c
string/is_wctype.c
string/scanf.c
string/strcspn.c
string/stricmp.c
string/strnicmp.c
string/strlwr.c
string/strrev.c
string/strset.c
string/strstr.c
string/strupr.c
string/strpbrk.c
string/strspn.c
string/atoi64.c
string/atoi.c
string/atol.c
string/itoa.c
string/itow.c
string/strtoi64.c
string/strtol.c
string/strtoul.c
string/strtoull.c
string/wcs.c
string/wcstol.c
string/wcstoul.c
string/wctype.c
string/wtoi64.c
string/wtoi.c
string/wtol.c
string/winesup.c
)
if(ARCH STREQUAL "i386")
list(APPEND LIBCNTPR_STRING_ASM_SOURCE
string/i386/strcat_asm.s
string/i386/strchr_asm.s
string/i386/strcmp_asm.s
string/i386/strcpy_asm.s
string/i386/strlen_asm.s
string/i386/strncat_asm.s
string/i386/strncmp_asm.s
string/i386/strncpy_asm.s
string/i386/strnlen_asm.s
string/i386/strrchr_asm.s
string/i386/wcscat_asm.s
string/i386/wcschr_asm.s
string/i386/wcscmp_asm.s
string/i386/wcscpy_asm.s
string/i386/wcslen_asm.s
string/i386/wcsncat_asm.s
string/i386/wcsncmp_asm.s
string/i386/wcsncpy_asm.s
string/i386/wcsnlen_asm.s
string/i386/wcsrchr_asm.s
)
else()
list(APPEND LIBCNTPR_STRING_SOURCE
string/strcat.c
string/strchr.c
string/strcmp.c
string/strcpy.c
string/strlen.c
string/strncat.c
string/strncmp.c
string/strncpy.c
string/strnlen.c
string/strrchr.c
string/wcscat.c
string/wcschr.c
string/wcscmp.c
string/wcscpy.c
string/wcslen.c
string/wcsncat.c
string/wcsncmp.c
string/wcsncpy.c
string/wcsnlen.c
string/wcsrchr.c
)
endif()
list(APPEND CRT_STRING_SOURCE
${LIBCNTPR_STRING_SOURCE}
string/_mbsnlen.c
string/_mbstrnlen.c
string/_splitpath_s.c
string/_wcslwr_s.c
string/_wsplitpath_s.c
string/atof.c
string/mbstowcs_s.c
string/strcoll.c
string/strdup.c
string/strerror.c
string/string.c
string/strncoll.c
string/strtod.c
string/strtok.c
string/strtok_s.c
string/strtoul.c
string/strxfrm.c
string/wcstombs_s.c
string/wtof.c
)
list(APPEND CRT_STRING_ASM_SOURCE
${LIBCNTPR_STRING_ASM_SOURCE}
)
list(APPEND LIBCNTPR_STRING_SOURCE
string/mbstowcs_nt.c
string/wcstombs_nt.c
)
# Used by acpi.sys
add_library(strtol
string/ctype.c
string/iswctype.c
string/strtoi64.c
string/strtol.c
string/strtoul.c
string/strtoull.c
string/wctype.c)
target_compile_definitions(strtol PRIVATE _LIBCNT_)
add_dependencies(strtol psdk)

View file

@ -0,0 +1,41 @@
list(APPEND CRT_TIME_SOURCE
time/asctime.c
time/clock.c
time/ctime32.c
time/ctime64.c
time/ctime.c
time/difftime32.c
time/difftime64.c
time/difftime.c
time/ftime32.c
time/ftime64.c
time/ftime.c
time/futime32.c
time/futime64.c
time/futime.c
time/gmtime.c
time/localtime32.c
time/localtime64.c
time/localtime.c
time/mktime.c
time/strdate.c
time/strftime.c
time/strtime.c
time/time32.c
time/time64.c
time/time.c
time/timezone.c
time/utime32.c
time/utime64.c
time/utime.c
time/wasctime.c
time/wctime32.c
time/wctime64.c
time/wctime.c
time/wstrdate.c
time/wstrtime.c
time/wutime32.c
time/wutime64.c
time/wutime.c
)

View file

@ -0,0 +1,26 @@
list(APPEND CRT_WINE_SOURCE
wine/cpp.c
wine/except.c
wine/heap.c
wine/undname.c
)
if(ARCH STREQUAL "i386")
list(APPEND CRT_WINE_SOURCE
wine/except_i386.c
)
elseif(ARCH STREQUAL "amd64")
list(APPEND CRT_WINE_SOURCE
wine/except_x86_64.c
)
elseif(ARCH STREQUAL "arm")
list(APPEND CRT_WINE_SOURCE
wine/except_arm.c
)
endif()
# includes for wine code
include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine)
#set_source_files_properties(${CRT_WINE_SOURCE} PROPERTIES INCLUDE_DIRECTORIES)

View file

@ -0,0 +1,17 @@
list(APPEND LIBCNTPR_WSTRING_SOURCE
wstring/wcsicmp.c
wstring/wcslwr.c
wstring/wcsnicmp.c
wstring/wcsupr.c
wstring/wcscspn.c
wstring/wcsspn.c
wstring/wcsstr.c
)
list(APPEND CRT_WSTRING_SOURCE
${LIBCNTPR_WSTRING_SOURCE}
wstring/wcscoll.c
wstring/wcstok.c
wstring/wcsxfrm.c
)