diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..419b5ba --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +CMakeLists.txt.user +edit +std*.log diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c6b6332 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,29 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +SET(PROJ_NAME plugin_python) + +PROJECT(${PROJ_NAME}) + +SET(DEPENDENCIES_DIR CACHE PATH "") + +# hint to find qt in dependencies path +LIST(APPEND CMAKE_PREFIX_PATH ${DEPENDENCIES_DIR}/qt5/lib/cmake) + +FILE(GLOB_RECURSE BOOST_ROOT ${DEPENDENCIES_DIR}/boost*/project-config.jam) +GET_FILENAME_COMPONENT(BOOST_ROOT ${BOOST_ROOT} DIRECTORY) + +FILE(GLOB_RECURSE PYTHON_ROOT ${DEPENDENCIES_DIR}/Python*/python.vcxproj) +GET_FILENAME_COMPONENT(PYTHON_ROOT ${PYTHON_ROOT} DIRECTORY) +GET_FILENAME_COMPONENT(PYTHON_ROOT ${PYTHON_ROOT} DIRECTORY) + +FILE(GLOB_RECURSE SIP_ROOT ${DEPENDENCIES_DIR}/sip*/siplib/sip.h) +GET_FILENAME_COMPONENT(SIP_ROOT ${SIP_ROOT} DIRECTORY) + + +# need to install python +INSTALL(FILES ${PYTHON_ROOT}/PCbuild/python27.dll DESTINATION bin) +INSTALL(FILES ${PYTHON_ROOT}/PCbuild/python27.pdb DESTINATION pdb) + + +ADD_SUBDIRECTORY(src/runner) +ADD_SUBDIRECTORY(src/proxy) diff --git a/src/proxy/CMakeLists.txt b/src/proxy/CMakeLists.txt new file mode 100644 index 0000000..bd085d4 --- /dev/null +++ b/src/proxy/CMakeLists.txt @@ -0,0 +1,56 @@ +CMAKE_MINIMUM_REQUIRED (VERSION 2.8) + +CMAKE_POLICY(SET CMP0020 NEW) +CMAKE_POLICY(SET CMP0043 NEW) + +FILE(GLOB ${PROJ_NAME}_SRCS proxypython.cpp) +FILE(GLOB ${PROJ_NAME}_HDRS proxypython.h) + + +SET(CMAKE_INCLUDE_CURRENT_DIR ON) +SET(CMAKE_AUTOMOC ON) +SET(CMAKE_AUTOUIC ON) +FIND_PACKAGE(Qt5Widgets REQUIRED) +#QT5_WRAP_UI(${PROJ_NAME}_UIHDRS ${${PROJ_NAME}_FORMS}) + +SET(Boost_USE_STATIC_LIBS ON) +SET(Boost_USE_MULTITHREADED ON) +SET(Boost_USE_STATIC_RUNTIME OFF) +FIND_PACKAGE(Boost) + +IF (Boost_FOUND) + INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) +ENDIF (Boost_FOUND) + +SET(default_project_path "${CMAKE_SOURCE_DIR}/../..") +GET_FILENAME_COMPONENT(${default_project_path} ${default_project_path} REALPATH) + +SET(project_path "${default_project_path}" CACHE PATH "path to the other mo projects") +SET(lib_path "${project_path}/../install/libs") + +ADD_DEFINITIONS(-DUNICODE -D_UNICODE) + +INCLUDE_DIRECTORIES(${project_path}/uibase/src + ${project_path}/plugin/plugin_python/src/runner/ + ${PYTHON_ROOT}/Include + ${PYTHON_ROOT}/PC) +LINK_DIRECTORIES(${lib_path}) + + +ADD_LIBRARY(${PROJ_NAME} SHARED ${${PROJ_NAME}_HDRS} ${${PROJ_NAME}_SRCS} ${${PROJ_NAME}_UIHDRS}) +TARGET_LINK_LIBRARIES(${PROJ_NAME} + Qt5::Widgets + ${Boost_LIBRARIES} + uibase) + +SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES COMPILE_FLAGS /GL) +SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/LTCG /LARGEADDRESSAWARE /OPT:REF /OPT:ICF") + +QT5_USE_MODULES(${PROJ_NAME} Widgets) + +############### +## Installation + +INSTALL(TARGETS ${PROJ_NAME} + RUNTIME DESTINATION bin/plugins) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJ_NAME}.pdb DESTINATION pdb) diff --git a/src/runner/CMakeLists.txt b/src/runner/CMakeLists.txt new file mode 100644 index 0000000..3f06cc4 --- /dev/null +++ b/src/runner/CMakeLists.txt @@ -0,0 +1,60 @@ +CMAKE_MINIMUM_REQUIRED (VERSION 2.8) + +SET(PROJ_NAME python_runner) + +PROJECT(${PROJ_NAME}) + +CMAKE_POLICY(SET CMP0020 NEW) + + +FILE(GLOB ${PROJ_NAME}_SRCS *.cpp) +FILE(GLOB ${PROJ_NAME}_HDRS *.h) + +SET(CMAKE_INCLUDE_CURRENT_DIR ON) +SET(CMAKE_AUTOMOC ON) +SET(CMAKE_AUTOUIC ON) +FIND_PACKAGE(Qt5Widgets REQUIRED) +#QT5_WRAP_UI(${PROJ_NAME}_UIHDRS ${${PROJ_NAME}_FORMS}) + +SET(Boost_USE_STATIC_LIBS ON) +SET(Boost_USE_MULTITHREADED ON) +SET(Boost_USE_STATIC_RUNTIME OFF) +FIND_PACKAGE(Boost) + +IF (Boost_FOUND) + INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) +ENDIF (Boost_FOUND) + +SET(default_project_path "${CMAKE_SOURCE_DIR}/../..") +GET_FILENAME_COMPONENT(${default_project_path} ${default_project_path} REALPATH) + +SET(project_path "${default_project_path}" CACHE PATH "path to the other mo projects") +SET(lib_path "${project_path}/../install/libs") + +INCLUDE_DIRECTORIES(${project_path}/uibase/src + ${PYTHON_ROOT}/Include + ${SIP_ROOT} + ${PYTHON_ROOT}/PC) + +LINK_DIRECTORIES(${lib_path} + ${PYTHON_ROOT}/PCbuild + ${Boost_LIBRARY_DIRS} + ${SIP_ROOT}) + +ADD_LIBRARY(${PROJ_NAME} SHARED ${${PROJ_NAME}_HDRS} ${${PROJ_NAME}_SRCS}) +TARGET_LINK_LIBRARIES(${PROJ_NAME} + Qt5::Widgets + uibase) + +SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES COMPILE_FLAGS /GL) +SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/LTCG /LARGEADDRESSAWARE /OPT:REF /OPT:ICF") + +QT5_USE_MODULES(${PROJ_NAME} Widgets) + +############### +## Installation + +INSTALL(TARGETS ${PROJ_NAME} + RUNTIME DESTINATION libs + ARCHIVE DESTINATION libs) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJ_NAME}.pdb DESTINATION pdb)