Skip to content

Commit

Permalink
fixed: replace SWIG_ADD_MODULE and force python2 on win x86
Browse files Browse the repository at this point in the history
eventghost still uses python2/x86
closes #481
  • Loading branch information
opdenkamp committed Apr 25, 2020
1 parent 72ae683 commit 818a0ea
Show file tree
Hide file tree
Showing 7 changed files with 58 additions and 22 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
@@ -1,5 +1,5 @@
project(libcec)
cmake_minimum_required(VERSION 2.8.11)
cmake_minimum_required(VERSION 3.12.0)

set(LIBCEC_VERSION_MAJOR 4)
set(LIBCEC_VERSION_MINOR 0)
Expand Down
2 changes: 1 addition & 1 deletion src/cec-client/CMakeLists.txt
@@ -1,5 +1,5 @@
project(cecclient)
cmake_minimum_required(VERSION 2.8.9)
cmake_minimum_required(VERSION 3.12.0)

set(cecclient_NAME cecclient)
set(cecclient_DESCRIPTION "libCEC test client")
Expand Down
2 changes: 1 addition & 1 deletion src/cecc-client/CMakeLists.txt
@@ -1,5 +1,5 @@
project(ceccclient)
cmake_minimum_required(VERSION 2.8.9)
cmake_minimum_required(VERSION 3.12.0)

set(ceccclient_NAME ceccclient)
set(ceccclient_DESCRIPTION "libCEC test client")
Expand Down
3 changes: 1 addition & 2 deletions src/libcec/CMakeLists.txt
@@ -1,6 +1,5 @@
project(cec)

cmake_minimum_required(VERSION 2.8.9)
cmake_minimum_required(VERSION 3.12.0)

set(cec_NAME cec)
set(cec_DESCRIPTION "libCEC")
Expand Down
51 changes: 39 additions & 12 deletions src/libcec/cmake/CheckPlatformSupport.cmake
Expand Up @@ -46,13 +46,24 @@ if(WIN32)
# Windows
add_definitions(-DTARGET_WINDOWS -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS -D_WINSOCKAPI_)
set(LIB_DESTINATION ".")
check_symbol_exists(_X64_ Windows.h WIN64)
check_symbol_exists(_AMD64_ Windows.h AMD64)
if (DEFINED WIN64 OR DEFINED AMD64)
set(LIB_INFO "${LIB_INFO} (x64)")
else()

if("${MSVC_C_ARCHITECTURE_ID}" STREQUAL "X86")
set(LIB_INFO "${LIB_INFO} (x86)")
add_definitions(-D_USE_32BIT_TIME_T)
# force python2 for eventghost
set(PYTHON_USE_VERSION 2)
elseif("${MSVC_C_ARCHITECTURE_ID}" STREQUAL "x64")
check_symbol_exists(_X64_ Windows.h WIN64)
check_symbol_exists(_AMD64_ Windows.h AMD64)
if (DEFINED WIN64 OR DEFINED AMD64)
set(LIB_INFO "${LIB_INFO} (x64)")
endif()
elseif("${MSVC_C_ARCHITECTURE_ID}" STREQUAL "ARM")
set(LIB_INFO "${LIB_INFO} (arm)")
else()
message(FATAL_ERROR "Unknown architecture id: ${MSVC_C_ARCHITECTURE_ID}")
endif()

set(HAVE_P8_USB_DETECT ON CACHE BOOL "p8 usb-cec detection supported" FORCE)
set(LIB_INFO "${LIB_INFO}, features: P8_USB, P8_detect")

Expand Down Expand Up @@ -190,14 +201,31 @@ if (${SKIP_PYTHON_WRAPPER})
message(STATUS "Not generating Python wrapper")
else()
# Python
include(FindPythonLibs)
find_package(PythonLibs)
if(PYTHON_USE_VERSION EQUAL 2)
# forced v2
include(FindPython2)
find_package(Python2 COMPONENTS Interpreter Development)
set(PYTHONLIBS_FOUND "${Python2_FOUND}")
set(PYTHONLIBS_VERSION_STRING "${Python2_VERSION}")
set(PYTHON_INCLUDE_PATH "${Python2_INCLUDE_DIRS}")
set(PYTHON_LIBRARIES "${Python2_LIBRARIES}")
else()
include(FindPythonLibs)
find_package(PythonLibs)
endif()

# Swig
find_package(SWIG)
if (PYTHONLIBS_FOUND AND SWIG_FOUND)
set(CMAKE_SWIG_FLAGS "-threads")
set(HAVE_PYTHON 1)

if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13")
# old style swig
cmake_policy(SET CMP0078 OLD)
cmake_policy(SET CMP0086 OLD)
endif()

set(CMAKE_SWIG_FLAGS "-threads")
if ("${PYTHONLIBS_VERSION_STRING}" STREQUAL "")
message(STATUS "Python version not found, defaulting to 2.7")
set(PYTHONLIBS_VERSION_STRING "2.7.x")
Expand All @@ -213,13 +241,12 @@ else()
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

SET_SOURCE_FILES_PROPERTIES(libcec.i PROPERTIES CPLUSPLUS ON)
swig_add_module(cec python libcec.i)
swig_link_libraries(cec ${PYTHON_LIBRARIES})
swig_link_libraries(cec cec)
SWIG_ADD_LIBRARY(cec LANGUAGE python TYPE MODULE SOURCES libcec.i)
SWIG_LINK_LIBRARIES(cec cec ${PYTHON_LIBRARIES})

SET(PYTHON_LIB_INSTALL_PATH "/cec" CACHE STRING "python lib path")
if (${PYTHON_MAJOR_VERSION} EQUAL 2 AND ${PYTHON_MINOR_VERSION} GREATER 6)
SET(PYTHON_LIB_INSTALL_PATH "" CACHE STRING "python lib path" FORCE)
SET(PYTHON_LIB_INSTALL_PATH "" CACHE STRING "python lib path" FORCE)
else()
if (${PYTHON_MAJOR_VERSION} GREATER 2)
SET(PYTHON_LIB_INSTALL_PATH "" CACHE STRING "python lib path" FORCE)
Expand Down
2 changes: 1 addition & 1 deletion src/libcec/cmake/SetBuildInfo.cmake
Expand Up @@ -7,7 +7,7 @@
if(WIN32)

# Windows
set(LIB_INFO "compiled on ${CMAKE_SYSTEM}")
set(LIB_INFO "compiled using MSVC ${CMAKE_CXX_COMPILER_VERSION}")

else()
# not Windows
Expand Down
18 changes: 14 additions & 4 deletions src/pyCecClient/CMakeLists.txt
@@ -1,11 +1,21 @@
project(pyCecClient)
cmake_minimum_required(VERSION 2.8.9)
cmake_minimum_required(VERSION 3.12.0)

# Python
include(FindPythonLibs)
find_package(PythonLibs)
if(WIN32 AND "${MSVC_C_ARCHITECTURE_ID}" STREQUAL "X86")
set(PYTHON_USE_VERSION 2)
endif()

if(PYTHON_USE_VERSION EQUAL 2)
include(FindPython2)
find_package(Python2)
set(PYTHONLIBS_FOUND "${Python2_FOUND}")
else()
include(FindPythonLibs)
find_package(PythonLibs)
endif()

if (PYTHONLIBS_FOUND)
if(PYTHONLIBS_FOUND)
if (WIN32)
install(PROGRAMS pyCecClient.py
DESTINATION python/.)
Expand Down

0 comments on commit 818a0ea

Please sign in to comment.