Skip to content

Commit

Permalink
feat(compiler): adapt non-msvc compiler
Browse files Browse the repository at this point in the history
  • Loading branch information
itas109 committed Dec 16, 2024
1 parent fc5352d commit 191d5e0
Show file tree
Hide file tree
Showing 20 changed files with 46 additions and 32 deletions.
2 changes: 1 addition & 1 deletion bindings/c/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ endif ()
add_library(${PROJECT_NAME} SHARED cserialport.cpp ${CSerialPortSourceFiles})

if (WIN32)
target_link_libraries(${PROJECT_NAME} setupapi)
target_link_libraries(${PROJECT_NAME} user32 advapi32 setupapi)
elseif (APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion bindings/csharp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ elseif (UNIX)
endif ()

if (WIN32)
link_libraries(setupapi)
link_libraries(user32 advapi32 setupapi)
elseif (APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion bindings/java/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ include(UseJava) # add_jar
include_directories(${JNI_INCLUDE_DIRS}) # jni.h

if (WIN32)
link_libraries(setupapi)
link_libraries(user32 advapi32 setupapi)
elseif (APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion bindings/javascript/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ endif ()
include_directories(${CMAKE_JS_INC}) # node.h

if (WIN32)
link_libraries(setupapi)
link_libraries(user32 advapi32 setupapi)
elseif (APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion bindings/nodejs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB})

if (WIN32)
target_link_libraries( ${PROJECT_NAME} setupapi)
target_link_libraries( ${PROJECT_NAME} user32 advapi32 setupapi)
elseif(APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ include_directories(${Python3_INCLUDE_DIRS})
link_libraries(${Python3_LIBRARIES})

if (WIN32)
link_libraries(setupapi)
link_libraries(user32 advapi32 setupapi)
elseif (APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion examples/CommElectron/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB})

if (WIN32)
target_link_libraries( ${PROJECT_NAME} setupapi)
target_link_libraries( ${PROJECT_NAME} user32 advapi32 setupapi)
elseif(APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion examples/CommMFC/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ add_executable(${PROJECT_NAME} WIN32 ${MFCFiles} ${CSerialPortSourceFiles})

if (WIN32)
# for function availableFriendlyPorts
target_link_libraries( ${PROJECT_NAME} setupapi)
target_link_libraries( ${PROJECT_NAME} user32 advapi32 setupapi)
elseif(APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion examples/CommNoGui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ else()

if (WIN32)
# for function availableFriendlyPorts
target_link_libraries( ${PROJECT_NAME} setupapi)
target_link_libraries( ${PROJECT_NAME} user32 advapi32 setupapi)
elseif(APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
29 changes: 16 additions & 13 deletions examples/CommNoGui/Makefile
Original file line number Diff line number Diff line change
@@ -1,38 +1,41 @@
CUR_DIR=.
CUR_DIR = .

DEMO_DIR=${CUR_DIR}
SRC_DIR=${CUR_DIR}/../../src
DEMO_DIR = ${CUR_DIR}
SRC_DIR = ${CUR_DIR}/../../src

INC_DIR=-I${CUR_DIR}/../../include
INC_DIR = -I${CUR_DIR}/../../include


SRC = ${DEMO_DIR}/CSerialPortDemoNoGui.cpp \
${SRC_DIR}/SerialPortInfo.cpp \
${SRC_DIR}/SerialPortInfoBase.cpp \
${SRC_DIR}/SerialPortInfoUnixBase.cpp \
${SRC_DIR}/SerialPort.cpp \
${SRC_DIR}/SerialPortBase.cpp \
${SRC_DIR}/SerialPortUnixBase.cpp \
SRC = ${DEMO_DIR}/CSerialPortDemoNoGui.cpp \
${SRC_DIR}/SerialPortInfo.cpp \
${SRC_DIR}/SerialPortInfoBase.cpp \
${SRC_DIR}/SerialPortInfoUnixBase.cpp \
${SRC_DIR}/SerialPort.cpp \
${SRC_DIR}/SerialPortBase.cpp \
${SRC_DIR}/SerialPortUnixBase.cpp

OBJ = ${SRC}

TARGET=CSerialPortDemoNoGui

CC=g++

# CSerialPort Debug Mode
CCFLAGS += -DCSERIALPORT_DEBUG

# include header
CCFLAGS += ${INC_DIR}

# pthread support
CCFLAGS += -lpthread


${TARGET}: ${OBJ}
${CC} ${OBJ} ${CCFLAGS} -o ${TARGET}
@echo "Compile done."

clean:
@rm -f *~ *.out
@echo "Clean tempreator files done."
@echo "Clean temporary files done."

@rm -f ${TARGET}
@echo "Clean target files done."
Expand Down
4 changes: 3 additions & 1 deletion examples/CommNoGui/compile-Clang.bat
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

set path=D:\Program Files\LLVM\bin\;%path%

REM clang version 18.1.8

echo "Clang compile"

clang++ CSerialPortDemoNoGui.cpp ../../src/SerialPortInfo.cpp ../../src/SerialPortInfoBase.cpp ../../src/SerialPortInfoWinBase.cpp ../../src/SerialPort.cpp ../../src/SerialPortBase.cpp ../../src/SerialPortWinBase.cpp -ladvapi32 -lsetupapi -I../../include -o CSerialPortDemoNoGui-Clang.exe
clang++ CSerialPortDemoNoGui.cpp ../../src/SerialPortInfo.cpp ../../src/SerialPortInfoBase.cpp ../../src/SerialPortInfoWinBase.cpp ../../src/SerialPort.cpp ../../src/SerialPortBase.cpp ../../src/SerialPortWinBase.cpp -luser32 -ladvapi32 -lsetupapi -I../../include -o CSerialPortDemoNoGui-Clang.exe

pause
4 changes: 2 additions & 2 deletions examples/CommNoGui/compile-MSVC.bat
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,9 @@ if %choice%==0 (
)

rem debug compile
rem cl /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _LIB /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TP /I "..\..\include" ..\..\src\SerialPort.cpp ..\..\src\SerialPortBase.cpp ..\..\src\SerialPortInfo.cpp ..\..\src\SerialPortInfoBase.cpp ..\..\src\SerialPortInfoWinBase.cpp ..\..\src\SerialPortWinBase.cpp CSerialPortDemoNoGui.cpp /link /OUT:"CSerialPortDemoNoGui-MSVC.exe" /INCREMENTAL /NOLOGO advapi32.lib setupapi.lib /SUBSYSTEM:CONSOLE /MACHINE:X86
rem cl /ZI /nologo /W3 /WX- /Od /Oy- /D CSERIALPORT_DEBUG /D WIN32 /D _DEBUG /D _CONSOLE /D _LIB /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TP /I "..\..\include" ..\..\src\SerialPort.cpp ..\..\src\SerialPortBase.cpp ..\..\src\SerialPortInfo.cpp ..\..\src\SerialPortInfoBase.cpp ..\..\src\SerialPortInfoWinBase.cpp ..\..\src\SerialPortWinBase.cpp CSerialPortDemoNoGui.cpp /link /OUT:"CSerialPortDemoNoGui-MSVC.exe" /INCREMENTAL /NOLOGO user32.lib advapi32.lib setupapi.lib /SUBSYSTEM:CONSOLE /MACHINE:X86

rem release compile
cl /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _LIB /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TP /I "..\..\include" ..\..\src\SerialPort.cpp ..\..\src\SerialPortBase.cpp ..\..\src\SerialPortInfo.cpp ..\..\src\SerialPortInfoBase.cpp ..\..\src\SerialPortInfoWinBase.cpp ..\..\src\SerialPortWinBase.cpp CSerialPortDemoNoGui.cpp /link /OUT:"CSerialPortDemoNoGui-MSVC.exe" /INCREMENTAL /NOLOGO advapi32.lib setupapi.lib /SUBSYSTEM:CONSOLE /MACHINE:X86
cl /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D CSERIALPORT_DEBUG /D WIN32 /D NDEBUG /D _CONSOLE /D _LIB /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TP /I "..\..\include" ..\..\src\SerialPort.cpp ..\..\src\SerialPortBase.cpp ..\..\src\SerialPortInfo.cpp ..\..\src\SerialPortInfoBase.cpp ..\..\src\SerialPortInfoWinBase.cpp ..\..\src\SerialPortWinBase.cpp CSerialPortDemoNoGui.cpp /link /OUT:"CSerialPortDemoNoGui-MSVC.exe" /INCREMENTAL /NOLOGO user32.lib advapi32.lib setupapi.lib /SUBSYSTEM:CONSOLE /MACHINE:X86

pause
6 changes: 4 additions & 2 deletions examples/CommNoGui/compile-MinGW.bat
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
@ECHO OFF

set path=D:\Qt\Qt5.12.9\Tools\mingw730_64\bin;%path%
REM gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)

set path=D:\mingw64\bin;%path%

echo "MinGW compile"

g++ CSerialPortDemoNoGui.cpp ../../src/SerialPortInfo.cpp ../../src/SerialPortInfoBase.cpp ../../src/SerialPortInfoWinBase.cpp ../../src/SerialPort.cpp ../../src/SerialPortBase.cpp ../../src/SerialPortWinBase.cpp -lpthread -lsetupapi -I../../include -o CSerialPortDemoNoGui-MinGW
g++ -DCSERIALPORT_DEBUG CSerialPortDemoNoGui.cpp ../../src/SerialPortInfo.cpp ../../src/SerialPortInfoBase.cpp ../../src/SerialPortInfoWinBase.cpp ../../src/SerialPort.cpp ../../src/SerialPortBase.cpp ../../src/SerialPortWinBase.cpp -lpthread -luser32 -ladvapi32 -lsetupapi -I../../include -o CSerialPortDemoNoGui-MinGW

pause
2 changes: 1 addition & 1 deletion examples/CommQT/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ target_link_libraries(CommQT Qt5::Widgets)

if (WIN32)
# for function availableFriendlyPorts
target_link_libraries( ${PROJECT_NAME} setupapi)
target_link_libraries( ${PROJECT_NAME} user32 advapi32 setupapi)
elseif(APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion examples/CommQT/CommQT.pro
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ DEFINES += _UNICODE

include($$PWD/commqt.pri)

win32:LIBS += -lsetupapi
win32:LIBS += -luser32 -ladvapi32 -lsetupapi
unix:!macx:LIBS += -lpthread
macx {
LIBS += -framework IOKit
Expand Down
2 changes: 1 addition & 1 deletion examples/CommWXWidgets/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ target_link_libraries(${PROJECT_NAME} ${wxWidgets_LIBRARIES})

if (WIN32)
# for function availableFriendlyPorts
target_link_libraries( ${PROJECT_NAME} setupapi)
target_link_libraries( ${PROJECT_NAME} user32 advapi32 setupapi)
elseif(APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion examples/CommWeb/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB})

if (WIN32)
target_link_libraries( ${PROJECT_NAME} setupapi)
target_link_libraries( ${PROJECT_NAME} user32 advapi32 setupapi)
elseif(APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
2 changes: 1 addition & 1 deletion examples/CommWebview/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ endif ()
add_executable(${PROJECT_NAME} main.cpp ${CSerialPortSourceFiles})

if (WIN32)
target_link_libraries( ${PROJECT_NAME} setupapi)
target_link_libraries( ${PROJECT_NAME} user32 advapi32 setupapi)
elseif(APPLE)
find_library(IOKIT_LIBRARY IOKit)
find_library(FOUNDATION_LIBRARY Foundation)
Expand Down
4 changes: 4 additions & 0 deletions include/CSerialPort/SerialPortHotPlug_win32.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
#include <tchar.h> // _T
#define CLASS_NAME _T("itas109SerialPortChangeWnd")

#if defined(_MSC_VER)
#pragma comment(lib, "user32.lib") // CreateWindowEx GetMessage DispatchMessage RegisterClassEx UnregisterClass DefWindowProc SetWindowLong GetWindowLong
#endif

namespace itas109
{
class CSerialPortHotPlug
Expand Down
3 changes: 3 additions & 0 deletions include/CSerialPort/iutils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@
#include <windows.h> // GetSystemInfo
#include <tchar.h> // _T

#if defined(_MSC_VER)
#pragma comment(lib, "advapi32.lib") // RegQueryValueEx RegCloseKey
#endif

#elif defined(__linux__)
#include <unistd.h> // sysconf
#elif defined(__APPLE__)
Expand Down

0 comments on commit 191d5e0

Please sign in to comment.