mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-04 19:04:46 +00:00
fixes DLL hell on Windows
This commit is contained in:
@@ -14,9 +14,15 @@
|
||||
const useWinVersion = defined(Windows) or defined(nimdoc)
|
||||
|
||||
when useWinVersion:
|
||||
const
|
||||
DLLSSLName = "(ssleay32|libssl32).dll"
|
||||
DLLUtilName = "libeay32.dll"
|
||||
when not defined(nimOldDlls) and defined(cpu64):
|
||||
const
|
||||
DLLSSLName = "(ssleay64|libssl64).dll"
|
||||
DLLUtilName = "libeay64.dll"
|
||||
else:
|
||||
const
|
||||
DLLSSLName = "(ssleay32|libssl32).dll"
|
||||
DLLUtilName = "libeay32.dll"
|
||||
|
||||
from winlean import SocketHandle
|
||||
else:
|
||||
const
|
||||
|
||||
@@ -310,7 +310,12 @@ type
|
||||
|
||||
when not defined(usePcreHeader):
|
||||
when hostOS == "windows":
|
||||
const pcreDll = "pcre.dll"
|
||||
when defined(nimOldDlls):
|
||||
const pcreDll = "pcre.dll"
|
||||
elif defined(cpu64):
|
||||
const pcreDll = "pcre64.dll"
|
||||
else:
|
||||
const pcreDll = "pcre32.dll"
|
||||
elif hostOS == "macosx":
|
||||
const pcreDll = "libpcre(.3|.1|).dylib"
|
||||
else:
|
||||
|
||||
@@ -42,8 +42,14 @@ pdcwin.h:
|
||||
when defined(windows):
|
||||
import windows
|
||||
|
||||
when defined(nimOldDlls):
|
||||
const pdcursesdll = "pdcurses.dll"
|
||||
elif defined(cpu64):
|
||||
const pdcursesdll = "pdcurses64.dll"
|
||||
else:
|
||||
const pdcursesdll = "pdcurses32.dll"
|
||||
|
||||
const
|
||||
pdcursesdll = "pdcurses.dll"
|
||||
unixOS = false
|
||||
{.pragma: extdecl, stdcall.}
|
||||
|
||||
|
||||
@@ -9,8 +9,12 @@
|
||||
|
||||
{.deadCodeElim: on.}
|
||||
when defined(windows):
|
||||
const
|
||||
Lib = "sqlite3.dll"
|
||||
when defined(nimOldDlls):
|
||||
const Lib = "sqlite3.dll"
|
||||
elif defined(cpu64):
|
||||
const Lib = "sqlite3_64.dll"
|
||||
else:
|
||||
const Lib = "sqlite3_32.dll"
|
||||
elif defined(macosx):
|
||||
const
|
||||
Lib = "libsqlite3(|.0).dylib"
|
||||
|
||||
13
web/news.txt
13
web/news.txt
@@ -50,7 +50,18 @@ News
|
||||
and are now deprecated and will be removed from the language. Instead you
|
||||
have to insert type conversions
|
||||
like ``(proc (a, b: int) {.closure.})(myToplevelProc)`` if necessary.
|
||||
- The constant fights between 32 and 64 bit DLLs on Windows have been put to
|
||||
an end: The standard distribution now ships with 32 and 64 bit versions
|
||||
of all the DLLs the standard library needs. This means that the following
|
||||
DLLs are now split into 32 and 64 versions:
|
||||
|
||||
* ``prce.dll``: Split into ``prce32.dll`` and ``prce64.dll``.
|
||||
* ``pdcurses.dll``: Split into ``pdcurses32.dll`` and ``pdcurses64.dll``.
|
||||
* ``sqlite3.dll``: Split into ``sqlite3_32.dll`` and ``sqlite3_64.dll``.
|
||||
* ``ssleay32.dll``: Split into ``ssleay32.dll`` and ``ssleay64.dll``.
|
||||
* ``libeay32.dll``: Split into ``libeay32.dll`` and ``libeay64.dll``.
|
||||
|
||||
Compile with ``-d:nimOldDLLs`` to make the stdlib use the old DLL names.
|
||||
|
||||
|
||||
Library additions
|
||||
@@ -79,6 +90,8 @@ News
|
||||
- Tuple unpacking finally works in a non-var/let context: ``(x, y) == f()``
|
||||
is allowed. Note that this doesn't declare ``x`` and ``y`` variables, for
|
||||
this ``let (x, y) == f()`` still needs to be used.
|
||||
- ``when nimvm`` can now be used for compiletime versions of some code
|
||||
sections. See (XXX) for details.
|
||||
|
||||
|
||||
Bugfixes
|
||||
|
||||
Reference in New Issue
Block a user