diff --git a/reactos/dll/directx/wine/wined3d/CMakeLists.txt b/reactos/dll/directx/wine/wined3d/CMakeLists.txt index babf8a4ee60..07e77e2e8d0 100644 --- a/reactos/dll/directx/wine/wined3d/CMakeLists.txt +++ b/reactos/dll/directx/wine/wined3d/CMakeLists.txt @@ -6,11 +6,6 @@ add_definitions( include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine) -if(MSVC) - add_definitions(-Disnan=_isnan) - add_definitions(-Disinf=!_finite) -endif() - spec2def(wined3d.dll wined3d.spec ADD_IMPORTLIB) list(APPEND SOURCE diff --git a/reactos/dll/win32/jscript/CMakeLists.txt b/reactos/dll/win32/jscript/CMakeLists.txt index df56d8be548..e815080769d 100644 --- a/reactos/dll/win32/jscript/CMakeLists.txt +++ b/reactos/dll/win32/jscript/CMakeLists.txt @@ -6,9 +6,7 @@ add_definitions(-D_WIN32_WINNT=0x600) add_definitions( -D__WINESRC__ - -D_USE_MATH_DEFINES - -Disinf=!_finite - -Disnan=_isnan) + -D_USE_MATH_DEFINES) include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) @@ -18,29 +16,28 @@ spec2def(jscript.dll jscript.spec) list(APPEND SOURCE activex.c + array.c + bool.c date.c dispex.c engine.c error.c + function.c + global.c jscript.c jscript_main.c jsutils.c lex.c - parser.tab.c math.c number.c object.c + parser.tab.c regexp.c string.c - array.c - bool.c - function.c - global.c + rsrc.rc ${CMAKE_CURRENT_BINARY_DIR}/jscript.def) -add_library(jscript SHARED - ${SOURCE} - rsrc.rc) +add_library(jscript SHARED ${SOURCE}) set_module_type(jscript win32dll) @@ -63,10 +60,4 @@ add_pch(jscript jscript.h) add_dependencies(jscript stdole2) add_cd_file(TARGET jscript DESTINATION reactos/system32 FOR all) -if(NOT MSVC) - # FIXME: http://www.cmake.org/Bug/view.php?id=12998 - #allow_warnings(jscript) - set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-Wno-error") -endif() - set_source_files_properties(rsrc.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/jsglobal.tlb) diff --git a/reactos/dll/win32/jscript/array.c b/reactos/dll/win32/jscript/array.c index 5c1bf120899..e366790f1df 100644 --- a/reactos/dll/win32/jscript/array.c +++ b/reactos/dll/win32/jscript/array.c @@ -16,6 +16,9 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "wine/config.h" +#include "wine/port.h" + #include #include "jscript.h" diff --git a/reactos/include/reactos/wine/config.h b/reactos/include/reactos/wine/config.h index c6e84867f86..5cd42f5fcb5 100644 --- a/reactos/include/reactos/wine/config.h +++ b/reactos/include/reactos/wine/config.h @@ -299,10 +299,10 @@ #define HAVE_IO_H 1 /* Define to 1 if you have the `isinf' function. */ -#define HAVE_ISINF 1 +/* #undef HAVE_ISINF */ /* Define to 1 if you have the `isnan' function. */ -#define HAVE_ISNAN 1 +/* #undef HAVE_ISNAN */ /* Define to 1 if you have the header file. */ /* #undef HAVE_JACK_JACK_H */ @@ -1140,6 +1140,12 @@ /* Define to 1 if you have the header file. */ /* #define HAVE_ZLIB_H 1 */ +/* Define to 1 if you have the `_finite' function. */ +#define HAVE__FINITE 1 + +/* Define to 1 if you have the `_isnan' function. */ +#define HAVE__ISNAN 1 + /* Define to 1 if you have the `_pclose' function. */ #define HAVE__PCLOSE 1 diff --git a/reactos/include/reactos/wine/port.h b/reactos/include/reactos/wine/port.h index 0b253172ff5..70bf3c38140 100644 --- a/reactos/include/reactos/wine/port.h +++ b/reactos/include/reactos/wine/port.h @@ -226,6 +226,14 @@ extern int getopt_long_only (int ___argc, char *const *___argv, size_t getpagesize(void); #endif /* HAVE_GETPAGESIZE */ +#if !defined(HAVE_ISINF) && !defined(_ISINF) && !defined(isinf) +int isinf(double x); +#endif + +#if !defined(HAVE_ISNAN) && !defined(_ISNAN) && !defined(isnan) +int isnan(double x); +#endif + #ifndef HAVE_LSTAT int lstat(const char *file_name, struct stat *buf); #endif /* HAVE_LSTAT */ diff --git a/reactos/lib/3rdparty/libwine/CMakeLists.txt b/reactos/lib/3rdparty/libwine/CMakeLists.txt index aaf92643737..8f4c440fcd6 100644 --- a/reactos/lib/3rdparty/libwine/CMakeLists.txt +++ b/reactos/lib/3rdparty/libwine/CMakeLists.txt @@ -5,6 +5,8 @@ add_definitions(-D__WINESRC__) list(APPEND SOURCE config.c debug_ros.c + isinf.c + isnan.c loader.c wctype.c register.c diff --git a/reactos/lib/3rdparty/libwine/isinf.c b/reactos/lib/3rdparty/libwine/isinf.c new file mode 100644 index 00000000000..baef611b0eb --- /dev/null +++ b/reactos/lib/3rdparty/libwine/isinf.c @@ -0,0 +1,46 @@ +/* + * isinf function + * + * Copyright 2008 Petr Sumbera + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "config.h" +#include "wine/port.h" + +#if !defined(HAVE_ISINF) && !defined(_ISINF) && !defined(isinf) + +#ifdef HAVE_IEEEFP_H +#include + +int isinf(double x) +{ + return (!(finite(x) || isnand(x))); +} + +#elif defined(HAVE_FLOAT_H) && defined(HAVE__ISNAN) && defined(HAVE__FINITE) +#include + +int isinf(double x) +{ + return (!(_finite(x) || _isnan(x))); +} + +#else +#error No isinf() implementation available. +#endif + +#endif /* !defined(HAVE_ISINF) && !defined(_ISINF) && !defined(isinf) */ diff --git a/reactos/lib/3rdparty/libwine/isnan.c b/reactos/lib/3rdparty/libwine/isnan.c new file mode 100644 index 00000000000..50445a1e956 --- /dev/null +++ b/reactos/lib/3rdparty/libwine/isnan.c @@ -0,0 +1,46 @@ +/* + * isnan function + * + * Copyright 2008 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "config.h" +#include "wine/port.h" + +#if !defined(HAVE_ISNAN) && !defined(_ISNAN) && !defined(isnan) + +#ifdef HAVE_IEEEFP_H +#include + +int isnan(double x) +{ + return isnand(x); +} + +#elif defined(HAVE_FLOAT_H) && defined(HAVE__ISNAN) +#include + +int isnan(double x) +{ + return _isnan(x); +} + +#else +#error No isnan() implementation available. +#endif + +#endif /* !defined(HAVE_ISNAN) && !defined(_ISNAN) && !defined(isnan) */