mirror of
https://github.com/reactos/reactos.git
synced 2024-12-29 10:35:28 +00:00
[WINE]
- Import isinf and isnan implementations from libwine_port and adjust port.h and config.h to support them - Remove isinf/isnan hacks from jscript and wined3d build files - Add missing port.h include to jscript/array.c (sent and applied upstream) See issue #7027 for more details. svn path=/trunk/; revision=56470
This commit is contained in:
parent
4c2fd89c46
commit
04406cf0e4
8 changed files with 121 additions and 24 deletions
|
@ -6,11 +6,6 @@ add_definitions(
|
||||||
|
|
||||||
include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine)
|
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)
|
spec2def(wined3d.dll wined3d.spec ADD_IMPORTLIB)
|
||||||
|
|
||||||
list(APPEND SOURCE
|
list(APPEND SOURCE
|
||||||
|
|
|
@ -6,9 +6,7 @@ add_definitions(-D_WIN32_WINNT=0x600)
|
||||||
|
|
||||||
add_definitions(
|
add_definitions(
|
||||||
-D__WINESRC__
|
-D__WINESRC__
|
||||||
-D_USE_MATH_DEFINES
|
-D_USE_MATH_DEFINES)
|
||||||
-Disinf=!_finite
|
|
||||||
-Disnan=_isnan)
|
|
||||||
|
|
||||||
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
|
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
|
||||||
|
|
||||||
|
@ -18,29 +16,28 @@ spec2def(jscript.dll jscript.spec)
|
||||||
|
|
||||||
list(APPEND SOURCE
|
list(APPEND SOURCE
|
||||||
activex.c
|
activex.c
|
||||||
|
array.c
|
||||||
|
bool.c
|
||||||
date.c
|
date.c
|
||||||
dispex.c
|
dispex.c
|
||||||
engine.c
|
engine.c
|
||||||
error.c
|
error.c
|
||||||
|
function.c
|
||||||
|
global.c
|
||||||
jscript.c
|
jscript.c
|
||||||
jscript_main.c
|
jscript_main.c
|
||||||
jsutils.c
|
jsutils.c
|
||||||
lex.c
|
lex.c
|
||||||
parser.tab.c
|
|
||||||
math.c
|
math.c
|
||||||
number.c
|
number.c
|
||||||
object.c
|
object.c
|
||||||
|
parser.tab.c
|
||||||
regexp.c
|
regexp.c
|
||||||
string.c
|
string.c
|
||||||
array.c
|
rsrc.rc
|
||||||
bool.c
|
|
||||||
function.c
|
|
||||||
global.c
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/jscript.def)
|
${CMAKE_CURRENT_BINARY_DIR}/jscript.def)
|
||||||
|
|
||||||
add_library(jscript SHARED
|
add_library(jscript SHARED ${SOURCE})
|
||||||
${SOURCE}
|
|
||||||
rsrc.rc)
|
|
||||||
|
|
||||||
set_module_type(jscript win32dll)
|
set_module_type(jscript win32dll)
|
||||||
|
|
||||||
|
@ -63,10 +60,4 @@ add_pch(jscript jscript.h)
|
||||||
add_dependencies(jscript stdole2)
|
add_dependencies(jscript stdole2)
|
||||||
add_cd_file(TARGET jscript DESTINATION reactos/system32 FOR all)
|
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)
|
set_source_files_properties(rsrc.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/jsglobal.tlb)
|
||||||
|
|
|
@ -16,6 +16,9 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "wine/config.h"
|
||||||
|
#include "wine/port.h"
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#include "jscript.h"
|
#include "jscript.h"
|
||||||
|
|
|
@ -299,10 +299,10 @@
|
||||||
#define HAVE_IO_H 1
|
#define HAVE_IO_H 1
|
||||||
|
|
||||||
/* Define to 1 if you have the `isinf' function. */
|
/* 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 to 1 if you have the `isnan' function. */
|
||||||
#define HAVE_ISNAN 1
|
/* #undef HAVE_ISNAN */
|
||||||
|
|
||||||
/* Define to 1 if you have the <jack/jack.h> header file. */
|
/* Define to 1 if you have the <jack/jack.h> header file. */
|
||||||
/* #undef HAVE_JACK_JACK_H */
|
/* #undef HAVE_JACK_JACK_H */
|
||||||
|
@ -1140,6 +1140,12 @@
|
||||||
/* Define to 1 if you have the <zlib.h> header file. */
|
/* Define to 1 if you have the <zlib.h> header file. */
|
||||||
/* #define HAVE_ZLIB_H 1 */
|
/* #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 to 1 if you have the `_pclose' function. */
|
||||||
#define HAVE__PCLOSE 1
|
#define HAVE__PCLOSE 1
|
||||||
|
|
||||||
|
|
|
@ -226,6 +226,14 @@ extern int getopt_long_only (int ___argc, char *const *___argv,
|
||||||
size_t getpagesize(void);
|
size_t getpagesize(void);
|
||||||
#endif /* HAVE_GETPAGESIZE */
|
#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
|
#ifndef HAVE_LSTAT
|
||||||
int lstat(const char *file_name, struct stat *buf);
|
int lstat(const char *file_name, struct stat *buf);
|
||||||
#endif /* HAVE_LSTAT */
|
#endif /* HAVE_LSTAT */
|
||||||
|
|
2
reactos/lib/3rdparty/libwine/CMakeLists.txt
vendored
2
reactos/lib/3rdparty/libwine/CMakeLists.txt
vendored
|
@ -5,6 +5,8 @@ add_definitions(-D__WINESRC__)
|
||||||
list(APPEND SOURCE
|
list(APPEND SOURCE
|
||||||
config.c
|
config.c
|
||||||
debug_ros.c
|
debug_ros.c
|
||||||
|
isinf.c
|
||||||
|
isnan.c
|
||||||
loader.c
|
loader.c
|
||||||
wctype.c
|
wctype.c
|
||||||
register.c
|
register.c
|
||||||
|
|
46
reactos/lib/3rdparty/libwine/isinf.c
vendored
Normal file
46
reactos/lib/3rdparty/libwine/isinf.c
vendored
Normal file
|
@ -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 <ieeefp.h>
|
||||||
|
|
||||||
|
int isinf(double x)
|
||||||
|
{
|
||||||
|
return (!(finite(x) || isnand(x)));
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif defined(HAVE_FLOAT_H) && defined(HAVE__ISNAN) && defined(HAVE__FINITE)
|
||||||
|
#include <float.h>
|
||||||
|
|
||||||
|
int isinf(double x)
|
||||||
|
{
|
||||||
|
return (!(_finite(x) || _isnan(x)));
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
#error No isinf() implementation available.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !defined(HAVE_ISINF) && !defined(_ISINF) && !defined(isinf) */
|
46
reactos/lib/3rdparty/libwine/isnan.c
vendored
Normal file
46
reactos/lib/3rdparty/libwine/isnan.c
vendored
Normal file
|
@ -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 <ieeefp.h>
|
||||||
|
|
||||||
|
int isnan(double x)
|
||||||
|
{
|
||||||
|
return isnand(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif defined(HAVE_FLOAT_H) && defined(HAVE__ISNAN)
|
||||||
|
#include <float.h>
|
||||||
|
|
||||||
|
int isnan(double x)
|
||||||
|
{
|
||||||
|
return _isnan(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
#error No isnan() implementation available.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !defined(HAVE_ISNAN) && !defined(_ISNAN) && !defined(isnan) */
|
Loading…
Reference in a new issue