Fix cygwin builds #121

Cygwin claims to be POSIX but only implementes part of
the dl_open interface.

For this usage, we revert to win32 interface when building on
Cygwin.
This commit is contained in:
Jason Turner
2014-05-13 14:55:27 -06:00
parent be9632d0ad
commit d5378f50af
3 changed files with 6 additions and 6 deletions

View File

@@ -147,7 +147,7 @@ endif()
# limitations in MinGW require us to make an optimized build
# for the sake of object sizes or something
if(MINGW)
if(MINGW OR CYGWIN)
add_definitions(-O3)
endif()

View File

@@ -12,7 +12,7 @@
#define CHAISCRIPT_HAS_DECLSPEC
#endif
#ifdef _WIN32
#if defined(_WIN32) || defined(__CYGWIN__)
#define CHAISCRIPT_WINDOWS
#endif

View File

@@ -34,7 +34,7 @@
#include <unistd.h>
#endif
#ifdef _POSIX_VERSION
#if defined(_POSIX_VERSION) && !defined(__CYGWIN__)
#include <dlfcn.h>
#else
#ifdef CHAISCRIPT_WINDOWS
@@ -69,7 +69,7 @@ namespace chaiscript
namespace detail
{
#ifdef _POSIX_VERSION
#if defined(_POSIX_VERSION) && !defined(__CYGWIN__)
struct Loadable_Module
{
struct DLModule
@@ -438,8 +438,7 @@ namespace chaiscript
m_usepaths.push_back("");
}
#ifdef _POSIX_VERSION
#if defined(_POSIX_VERSION) && !defined(__CYGWIN__)
// If on Unix, add the path of the current executable to the module search path
// as windows would do
@@ -704,6 +703,7 @@ namespace chaiscript
std::vector<std::string> prefixes;
prefixes.push_back("lib");
prefixes.push_back("cyg");
prefixes.push_back("");
std::vector<std::string> postfixes;