mirror of https://github.com/rusefi/openblt.git
Refs #1270. Switched to building 64-bit versions of the PC tools under Windows. Starting with this commit and the to-be-released OpenBLT version 1.14, the included Windows binaries are all 64-bit. Note that building 32-bit versions is also still supported. Instructions for this can be found on the OpenBLT Wiki.
git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@941 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
parent
6706102797
commit
01e1504737
Binary file not shown.
Binary file not shown.
|
@ -73,15 +73,27 @@ set(LIBOPENBLT_LIB ${PROJECT_OUTPUT_DIRECTORY})
|
||||||
#****************************************************************************************
|
#****************************************************************************************
|
||||||
# Compiler flags
|
# Compiler flags
|
||||||
#****************************************************************************************
|
#****************************************************************************************
|
||||||
# Set platform specific compiler macro PLATFORM_XXX
|
# Set platform specific compiler macros PLATFORM_XXX
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(CMAKE_C_COMPILER_ID MATCHES GNU)
|
if(CMAKE_C_COMPILER_ID MATCHES GNU)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WIN32 -D_CRT_SECURE_NO_WARNINGS -std=gnu99")
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_32BIT -D_CRT_SECURE_NO_WARNINGS -std=gnu99")
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_64BIT -D_CRT_SECURE_NO_WARNINGS -std=gnu99")
|
||||||
|
endif()
|
||||||
elseif(CMAKE_C_COMPILER_ID MATCHES MSVC)
|
elseif(CMAKE_C_COMPILER_ID MATCHES MSVC)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WIN32 -D_CRT_SECURE_NO_WARNINGS")
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_32BIT -D_CRT_SECURE_NO_WARNINGS")
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_64BIT -D_CRT_SECURE_NO_WARNINGS")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_LINUX -pthread -std=gnu99")
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_LINUX -DPLATFORM_32BIT -pthread -std=gnu99")
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_LINUX -DPLATFORM_64BIT -pthread -std=gnu99")
|
||||||
|
endif()
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
# Configure a statically linked run-time library for msvc
|
# Configure a statically linked run-time library for msvc
|
||||||
|
|
|
@ -85,15 +85,27 @@ endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )
|
||||||
#****************************************************************************************
|
#****************************************************************************************
|
||||||
# Compiler flags
|
# Compiler flags
|
||||||
#****************************************************************************************
|
#****************************************************************************************
|
||||||
# Set platform specific compiler macro PLATFORM_XXX
|
# Set platform specific compiler macros PLATFORM_XXX
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(CMAKE_C_COMPILER_ID MATCHES GNU)
|
if(CMAKE_C_COMPILER_ID MATCHES GNU)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WIN32 -D_CRT_SECURE_NO_WARNINGS -std=gnu99")
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_32BIT -D_CRT_SECURE_NO_WARNINGS -std=gnu99")
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_64BIT -D_CRT_SECURE_NO_WARNINGS -std=gnu99")
|
||||||
|
endif()
|
||||||
elseif(CMAKE_C_COMPILER_ID MATCHES MSVC)
|
elseif(CMAKE_C_COMPILER_ID MATCHES MSVC)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WIN32 -D_CRT_SECURE_NO_WARNINGS")
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_32BIT -D_CRT_SECURE_NO_WARNINGS")
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_64BIT -D_CRT_SECURE_NO_WARNINGS")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_LINUX -pthread -std=gnu99")
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_LINUX -DPLATFORM_32BIT -pthread -std=gnu99")
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_LINUX -DPLATFORM_64BIT -pthread -std=gnu99")
|
||||||
|
endif()
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
# Configure a statically linked run-time library for msvc
|
# Configure a statically linked run-time library for msvc
|
||||||
|
|
|
@ -32,9 +32,9 @@ These run-time libraries can be found in the ./Host directory of the OpenBLT boo
|
||||||
|
|
||||||
### Configure platform target
|
### Configure platform target
|
||||||
|
|
||||||
Under Microsoft Windows, the LibOpenBLT shared library (**libopenblt.dll**) is 32-bit. For this reason you need to build your own C# program as a 32-bit application as well.
|
Under Microsoft Windows, the LibOpenBLT shared library (**libopenblt.dll**) is 64-bit ever since OpenBLT version 1.14. For this reason you need to build your own C# program as a 64-bit application as well. To configure this, go to your project's properties in Microsoft Visual Studio. In the *Build* settings, set the **Platform target** to **x64**.
|
||||||
|
|
||||||
To configure this, go to your project's properties in Microsoft Visual Studio. In the *Build* settings, set the **Platform target** to **x86**.
|
If you use the LibOpenBLT shared library from before OpenBLT version 1.14 or if you rebuilt it yourself as 32-bit, then you need to build your own C# program as a 32-bit application. To configure this, go to your project's properties in Microsoft Visual Studio. In the *Build* settings, set the **Platform target** to **x86**.
|
||||||
|
|
||||||
### Example program
|
### Example program
|
||||||
|
|
||||||
|
|
|
@ -41,8 +41,15 @@ namespace OpenBLT
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Note that under Microsoft Windows, the LibOpenBLT shared library (libopenblt.dll)
|
/// Note that under Microsoft Windows, the LibOpenBLT shared library (libopenblt.dll)
|
||||||
/// is 32-bit. For this reason, whatever project uses this wrapper class needs to
|
/// is 64-bit, ever since OpenBLT version 1.14 . For this reason, whatever project
|
||||||
/// be built as a 32-bit application.
|
/// uses this wrapper class needs to be built as a 64-bit application.
|
||||||
|
///
|
||||||
|
/// To configure this, go to your project's properties in Microsoft Visual Studio.
|
||||||
|
/// In the "Build" settings, set "Platform target" to "x64".
|
||||||
|
///
|
||||||
|
/// When using LibOpenBLT from before OpenBLT version 1.14 or if you rebuild the
|
||||||
|
/// LibOpenBLT shared library yourself as 32-bit, then your project that uses this
|
||||||
|
/// wrapper class needs to be built as a 32-bit application.
|
||||||
///
|
///
|
||||||
/// To configure this, go to your project's properties in Microsoft Visual Studio.
|
/// To configure this, go to your project's properties in Microsoft Visual Studio.
|
||||||
/// In the "Build" settings, set "Platform target" to "x86".
|
/// In the "Build" settings, set "Platform target" to "x86".
|
||||||
|
|
|
@ -27,11 +27,9 @@ These run-time libraries can be found in the ./Host directory of the OpenBLT boo
|
||||||
|
|
||||||
### Lazarus and Delphi specifics on Windows
|
### Lazarus and Delphi specifics on Windows
|
||||||
|
|
||||||
Under Microsoft Windows, the LibOpenBLT shared library (**libopenblt.dll**) is 32-bit. This means that the application you develop needs to build as a 32-bit application as well.
|
Under Microsoft Windows, the LibOpenBLT shared library (**libopenblt.dll**) is 64-bit ever since OpenBLT version 1.14. This means that the application you develop needs to build as a 64-bit application as well. When using Lazarus, an easy solution is to install the [64-bit version of Lazarus](https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2064%20bits/). That way your own application automatically builds as a 64-bit application as well. When using Delphi, go to the *Project Manager* and configure just **64-bit Windows platform** for setting **Target Platforms**.
|
||||||
|
|
||||||
When using Lazarus, an easy solution is to install the 32-bit version of Lazarus. That way your own application automatically builds as a 32-bit application as well. If you already installed the 64-bit version of Lazarus, then you can go to the *Project Options* and set **Target OS** to **Win32** and **Target CPU Family** to **i386**.
|
If you use the LibOpenBLT shared library from before OpenBLT version 1.14 or if you rebuilt it yourself as 32-bit, you need to build your Lazarus application as a 32-bit application. If you install the [32-bit version of Lazarus](https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2032%20bits/), your application by default builds as a 32-bit. When using Delphi, go to the *Project Manager* and configure just **32-bit Windows platform** for setting **Target Platforms**.
|
||||||
|
|
||||||
When using Delphi, go to the *Project Manager* and configure just **32-bit Windows platform (Win32)** for setting **Target Platforms**.
|
|
||||||
|
|
||||||
### Lazarus specifics on Linux
|
### Lazarus specifics on Linux
|
||||||
When running your program under Linux, you will most likely get the following error:
|
When running your program under Linux, you will most likely get the following error:
|
||||||
|
|
|
@ -42,4 +42,6 @@ These run-time libraries can be found in the ./Host directory of the OpenBLT boo
|
||||||
|
|
||||||
Specific on Windows
|
Specific on Windows
|
||||||
------------------
|
------------------
|
||||||
Under Microsoft Windows, the LibOpenBLT shared library (libopenblt.dll) is 32-bit. Therefore you need to run your Python application, that makes use of LibOpenBLT, using the 32-bit Python interpreter.
|
Under Microsoft Windows, the LibOpenBLT shared library (libopenblt.dll) is 64-bit ever since OpenBLT version 1.14. Therefore you need to run your Python application, that makes use of LibOpenBLT, using the 64-bit Python interpreter.
|
||||||
|
|
||||||
|
If you use the LibOpenBLT shared library from before OpenBLT version 1.14 or if you rebuilt it yourself as 32-bit, you need to run your Python application using the 32-bit Python interpreter.
|
||||||
|
|
|
@ -35,16 +35,15 @@
|
||||||
#include <stdbool.h> /* for boolean type */
|
#include <stdbool.h> /* for boolean type */
|
||||||
#include <string.h> /* for string library */
|
#include <string.h> /* for string library */
|
||||||
#include "candriver.h" /* Generic CAN driver module */
|
#include "candriver.h" /* Generic CAN driver module */
|
||||||
#if defined(PLATFORM_WIN32)
|
#if defined(PLATFORM_LINUX)
|
||||||
|
#include "socketcan.h" /* SocketCAN interface */
|
||||||
|
#else
|
||||||
#include "pcanusb.h" /* Peak PCAN-USB interface */
|
#include "pcanusb.h" /* Peak PCAN-USB interface */
|
||||||
#include "leaflight.h" /* Kvaser Leaf Light v2 interface */
|
#include "leaflight.h" /* Kvaser Leaf Light v2 interface */
|
||||||
#include "canusb.h" /* Lawicel CANUSB interface */
|
#include "canusb.h" /* Lawicel CANUSB interface */
|
||||||
#include "xldriver.h" /* Vector XL driver interface */
|
#include "xldriver.h" /* Vector XL driver interface */
|
||||||
#include "vcidriver.h" /* Ixxat VCI driver interface */
|
#include "vcidriver.h" /* Ixxat VCI driver interface */
|
||||||
#endif
|
#endif
|
||||||
#if defined(PLATFORM_LINUX)
|
|
||||||
#include "socketcan.h" /* SocketCAN interface */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************************
|
/****************************************************************************************
|
||||||
|
@ -83,7 +82,12 @@ void CanInit(tCanSettings const * settings)
|
||||||
/* Determine the pointer to the correct CAN interface, based on the specified
|
/* Determine the pointer to the correct CAN interface, based on the specified
|
||||||
* device name.
|
* device name.
|
||||||
*/
|
*/
|
||||||
#if defined(PLATFORM_WIN32)
|
#if defined(PLATFORM_LINUX)
|
||||||
|
/* On Linux, the device name is the name of the SocketCAN link, so always link
|
||||||
|
* the SocketCAN interface to the CAN driver.
|
||||||
|
*/
|
||||||
|
canIfPtr = SocketCanGetInterface();
|
||||||
|
#else
|
||||||
if (strcmp(settings->devicename, "peak_pcanusb") == 0)
|
if (strcmp(settings->devicename, "peak_pcanusb") == 0)
|
||||||
{
|
{
|
||||||
canIfPtr = PCanUsbGetInterface();
|
canIfPtr = PCanUsbGetInterface();
|
||||||
|
@ -104,12 +108,6 @@ void CanInit(tCanSettings const * settings)
|
||||||
{
|
{
|
||||||
canIfPtr = IxxatVciGetInterface();
|
canIfPtr = IxxatVciGetInterface();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#if defined(PLATFORM_LINUX)
|
|
||||||
/* On Linux, the device name is the name of the SocketCAN link, so always link
|
|
||||||
* the SocketCAN interface to the CAN driver.
|
|
||||||
*/
|
|
||||||
canIfPtr = SocketCanGetInterface();
|
|
||||||
#endif
|
#endif
|
||||||
/* Check validity of the interface. */
|
/* Check validity of the interface. */
|
||||||
assert(canIfPtr != NULL);
|
assert(canIfPtr != NULL);
|
||||||
|
|
|
@ -113,6 +113,14 @@
|
||||||
#define _M_BITS 32
|
#define _M_BITS 32
|
||||||
#define _M_IX86_ _M_IX86
|
#define _M_IX86_ _M_IX86
|
||||||
#define _M_BYTE_ORDER _LITTLE_ENDIAN
|
#define _M_BYTE_ORDER _LITTLE_ENDIAN
|
||||||
|
#elif !defined(_M_X64_) && defined(_M_X64)
|
||||||
|
#define _M_BITS 64
|
||||||
|
#define _M_X64_ _M_X64
|
||||||
|
#define _M_BYTE_ORDER _LITTLE_ENDIAN
|
||||||
|
#elif !defined(_M_AMD64_) && defined(_M_AMD64)
|
||||||
|
#define _M_BITS 64
|
||||||
|
#define _M_AMD64_ _M_AMD64
|
||||||
|
#define _M_BYTE_ORDER _LITTLE_ENDIAN
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -589,9 +589,14 @@ static void CanUsbLibLoadDll(void)
|
||||||
canUsbLibFuncStatusPtr = NULL;
|
canUsbLibFuncStatusPtr = NULL;
|
||||||
canUsbLibFuncSetReceiveCallBackPtr = NULL;
|
canUsbLibFuncSetReceiveCallBackPtr = NULL;
|
||||||
|
|
||||||
/* Attempt to load the library and obtain a handle to it. */
|
/* Attempt to load the library and obtain a handle to it. Note that the 32-bit DLL
|
||||||
|
* has a different name than the 64-bit one.
|
||||||
|
*/
|
||||||
|
#ifdef PLATFORM_32BIT
|
||||||
canUsbDllHandle = LoadLibrary("canusbdrv");
|
canUsbDllHandle = LoadLibrary("canusbdrv");
|
||||||
|
#else
|
||||||
|
canUsbDllHandle = LoadLibrary("canusbdrv64");
|
||||||
|
#endif
|
||||||
/* Assert libary handle. */
|
/* Assert libary handle. */
|
||||||
assert(canUsbDllHandle != NULL);
|
assert(canUsbDllHandle != NULL);
|
||||||
|
|
||||||
|
|
|
@ -69,15 +69,27 @@ endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )
|
||||||
#****************************************************************************************
|
#****************************************************************************************
|
||||||
# Compiler flags
|
# Compiler flags
|
||||||
#****************************************************************************************
|
#****************************************************************************************
|
||||||
# Set platform specific compiler macro PLATFORM_XXX
|
# Set platform specific compiler macros PLATFORM_XXX
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(CMAKE_C_COMPILER_ID MATCHES GNU)
|
if(CMAKE_C_COMPILER_ID MATCHES GNU)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WIN32 -D_CRT_SECURE_NO_WARNINGS -std=gnu99")
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_32BIT -D_CRT_SECURE_NO_WARNINGS -std=gnu99")
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_64BIT -D_CRT_SECURE_NO_WARNINGS -std=gnu99")
|
||||||
|
endif()
|
||||||
elseif(CMAKE_C_COMPILER_ID MATCHES MSVC)
|
elseif(CMAKE_C_COMPILER_ID MATCHES MSVC)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WIN32 -D_CRT_SECURE_NO_WARNINGS")
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_32BIT -D_CRT_SECURE_NO_WARNINGS")
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WINDOWS -DPLATFORM_64BIT -D_CRT_SECURE_NO_WARNINGS")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_LINUX -pthread -std=gnu99")
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_LINUX -DPLATFORM_32BIT -pthread -std=gnu99")
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_LINUX -DPLATFORM_64BIT -pthread -std=gnu99")
|
||||||
|
endif()
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
# Configure a statically linked run-time library for msvc
|
# Configure a statically linked run-time library for msvc
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue