From 0ec7d189b22fb47dc3dff247b697ef14dd0f3264 Mon Sep 17 00:00:00 2001
From: Carl Philipp Klemm <philipp@uvos.xyz>
Date: Fri, 30 Jun 2023 16:12:19 +0200
Subject: [PATCH] Add windows cross compileing support

---
 CMakeLists.txt | 10 +++++-----
 crossW64.cmake |  9 +++++++++
 2 files changed, 14 insertions(+), 5 deletions(-)
 create mode 100644 crossW64.cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index bc88785..d8b7966 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,18 +12,18 @@ endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
 
 set(SRC_FILES eismultiplexer.c usbshm.c)
 add_library(${PROJECT_NAME} SHARED ${SRC_FILES})
-target_link_libraries(${PROJECT_NAME} ${LIBUSB_LIBRARIES} -pthread)
+target_link_libraries(${PROJECT_NAME} ${LIBUSB_LIBRARIES})
 target_include_directories(${PROJECT_NAME} PUBLIC ${LIBUSB_INCLUDE_DIRS})
 add_definitions("-std=c17 -Wall -O2 -fno-strict-aliasing")
 install(TARGETS ${PROJECT_NAME} DESTINATION lib)
 install(FILES ./eismultiplexer.h DESTINATION include)
 
 link_directories(${CMAKE_CURRENT_BINARY_DIR})
-add_executable(${PROJECT_NAME}_test main.c)
-add_dependencies(${PROJECT_NAME}_test ${PROJECT_NAME})
-target_link_libraries( ${PROJECT_NAME}_test -l${PROJECT_NAME})
+add_executable(${PROJECT_NAME}_cli main.c)
+add_dependencies(${PROJECT_NAME}_cli ${PROJECT_NAME})
+target_link_libraries( ${PROJECT_NAME}_cli ${PROJECT_NAME})
 add_definitions("-std=c17 -Wall -O2 -fno-strict-aliasing")
-install(TARGETS ${PROJECT_NAME}_test DESTINATION bin)
+install(TARGETS ${PROJECT_NAME}_cli DESTINATION bin)
 
 configure_file(pkgconfig/eismuliplexer.pc.in pkgconfig/eismuliplexer.pc @ONLY)
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/eismuliplexer.pc DESTINATION lib/pkgconfig)
diff --git a/crossW64.cmake b/crossW64.cmake
new file mode 100644
index 0000000..250001d
--- /dev/null
+++ b/crossW64.cmake
@@ -0,0 +1,9 @@
+set(CMAKE_SYSTEM_NAME Windows)
+set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
+set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
+set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32)
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_EXE_LINKER_FLAGS "-static")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
-- 
GitLab