|
|
project(PythonQt_Core)
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Sources
|
|
|
|
|
|
set(SOURCES
|
|
|
PythonQtClassInfo.cpp
|
|
|
PythonQtClassWrapper.cpp
|
|
|
PythonQtConversion.cpp
|
|
|
PythonQt.cpp
|
|
|
PythonQtImporter.cpp
|
|
|
PythonQtInstanceWrapper.cpp
|
|
|
PythonQtMethodInfo.cpp
|
|
|
PythonQtMisc.cpp
|
|
|
PythonQtObjectPtr.cpp
|
|
|
PythonQtQFileImporter.cpp
|
|
|
PythonQtSignalReceiver.cpp
|
|
|
PythonQtSlot.cpp
|
|
|
PythonQtSignal.cpp
|
|
|
PythonQtStdDecorators.cpp
|
|
|
PythonQtStdIn.cpp
|
|
|
PythonQtStdOut.cpp
|
|
|
gui/PythonQtScriptingConsole.cpp
|
|
|
|
|
|
../generated_cpp${generated_cpp_suffix}/PythonQt_QtBindings.cpp
|
|
|
|
|
|
../generated_cpp${generated_cpp_suffix}/com_trolltech_qt_core_builtin/com_trolltech_qt_core_builtin0.cpp
|
|
|
../generated_cpp${generated_cpp_suffix}/com_trolltech_qt_core_builtin/com_trolltech_qt_core_builtin_init.cpp
|
|
|
../generated_cpp${generated_cpp_suffix}/com_trolltech_qt_gui_builtin/com_trolltech_qt_gui_builtin0.cpp
|
|
|
../generated_cpp${generated_cpp_suffix}/com_trolltech_qt_gui_builtin/com_trolltech_qt_gui_builtin_init.cpp
|
|
|
)
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# List headers. This is list is used for the install command.
|
|
|
|
|
|
set(HEADERS
|
|
|
PythonQtClassInfo.h
|
|
|
PythonQtClassWrapper.h
|
|
|
PythonQtConversion.h
|
|
|
PythonQtCppWrapperFactory.h
|
|
|
PythonQtDoc.h
|
|
|
PythonQt.h
|
|
|
PythonQtImporter.h
|
|
|
PythonQtImportFileInterface.h
|
|
|
PythonQtInstanceWrapper.h
|
|
|
PythonQtMethodInfo.h
|
|
|
PythonQtMisc.h
|
|
|
PythonQtObjectPtr.h
|
|
|
PythonQtQFileImporter.h
|
|
|
PythonQtSignalReceiver.h
|
|
|
PythonQtSlot.h
|
|
|
PythonQtSignal.h
|
|
|
PythonQtStdDecorators.h
|
|
|
PythonQtStdIn.h
|
|
|
PythonQtStdOut.h
|
|
|
PythonQtSystem.h
|
|
|
PythonQtVariants.h
|
|
|
PythonQtPythonInclude.h
|
|
|
../generated_cpp${generated_cpp_suffix}/PythonQt_QtBindings.h
|
|
|
)
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Headers that should run through moc
|
|
|
|
|
|
set(SOURCES_MOC
|
|
|
PythonQt.h
|
|
|
PythonQtSignalReceiver.h
|
|
|
PythonQtStdDecorators.h
|
|
|
gui/PythonQtScriptingConsole.h
|
|
|
|
|
|
../generated_cpp${generated_cpp_suffix}/com_trolltech_qt_core_builtin/com_trolltech_qt_core_builtin0.h
|
|
|
../generated_cpp${generated_cpp_suffix}/com_trolltech_qt_gui_builtin/com_trolltech_qt_gui_builtin0.h
|
|
|
)
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Resources
|
|
|
set(SOURCES_QRC )
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Build the library
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
add_definitions(-DPYTHONQT_EXPORTS)
|
|
|
|
|
|
qt_wrap_cpp(GEN_MOC ${SOURCES_MOC})
|
|
|
qt_add_resources(GEN_QRC ${SOURCES_QRC})
|
|
|
|
|
|
add_library(${PythonQt} SHARED ${SOURCES} ${GEN_MOC} ${GEN_QRC} ${HEADERS})
|
|
|
if(PythonQt_Qt5)
|
|
|
qt_use_modules(${PythonQt} Core Gui Widgets)
|
|
|
else()
|
|
|
qt_use_modules(${PythonQt} Core Gui)
|
|
|
endif()
|
|
|
target_link_libraries(${PythonQt} ${PYTHON_LIBRARIES})
|
|
|
|
|
|
#
|
|
|
# That should solve linkage error on Mac when the project is used in a superbuild setup
|
|
|
# See http://blog.onesadcookie.com/2008/01/installname-magic.html
|
|
|
#
|
|
|
set_target_properties(${PythonQt} PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Install library (on windows, put the dll in 'bin' and the archive in 'lib')
|
|
|
|
|
|
set_target_properties(${PythonQt} PROPERTIES PUBLIC_HEADER "${HEADERS}")
|
|
|
|
|
|
install(TARGETS ${PythonQt} EXPORT ${PythonQt}Targets COMPONENT core-dev
|
|
|
RUNTIME DESTINATION bin COMPONENT core
|
|
|
LIBRARY DESTINATION lib COMPONENT core
|
|
|
ARCHIVE DESTINATION lib COMPONENT core
|
|
|
PUBLIC_HEADER DESTINATION include/PythonQt)
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Export CMake Config
|
|
|
|
|
|
if(WIN32 AND NOT CYGWIN)
|
|
|
set(LIB_CMAKE_PATH "cmake")
|
|
|
else()
|
|
|
set(LIB_CMAKE_PATH "lib/cmake/${PythonQt}")
|
|
|
endif()
|
|
|
|
|
|
export(TARGETS ${PythonQt} FILE "${PROJECT_BINARY_DIR}/${PythonQt}Targets.cmake")
|
|
|
export(PACKAGE ${PythonQt})
|
|
|
|
|
|
# build tree
|
|
|
set(INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}")
|
|
|
configure_file(PythonQtConfig.cmake.in "${PROJECT_BINARY_DIR}/${PythonQt}Config.cmake" @ONLY)
|
|
|
# install tree
|
|
|
set(INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/PythonQt")
|
|
|
configure_file(PythonQtConfig.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PythonQt}Config.cmake" @ONLY)
|
|
|
# both
|
|
|
configure_file(PythonQtConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/${PythonQt}ConfigVersion.cmake" @ONLY)
|
|
|
|
|
|
install(EXPORT ${PythonQt}Targets DESTINATION "${LIB_CMAKE_PATH}" COMPONENT core-dev)
|
|
|
install(FILES ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PythonQt}Config.cmake
|
|
|
${PROJECT_BINARY_DIR}/${PythonQt}ConfigVersion.cmake
|
|
|
DESTINATION "${LIB_CMAKE_PATH}" COMPONENT core-dev)
|
|
|
|
|
|
|