##// END OF EJS Templates
Add PythonQt*Config.cmake
Add PythonQt*Config.cmake

File last commit:

r211:6242b5a89014
r211:6242b5a89014
Show More
CMakeLists.txt
139 lines | 4.6 KiB | text/plain | TextLexer
Orochimarufan
Redo CMake build system, get Qt5 support...
r205 project(PythonQt_Core)
cmake_minimum_required(VERSION 2.8.10)
#-----------------------------------------------------------------------------
# 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
Orochimarufan
Now Works with Python 2 & 3, Qt 4 & 5....
r208 set(PythonQt ${PythonQt_LibraryName}${PythonQt_LibrarySuffix} CACHE INTERNAL "")
Orochimarufan
Redo CMake build system, get Qt5 support...
r205
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
Orochimarufan
Now Works with Python 2 & 3, Qt 4 & 5....
r208 qt_wrap_cpp(GEN_MOC ${SOURCES_MOC})
qt_add_resources(GEN_QRC ${SOURCES_QRC})
Orochimarufan
Redo CMake build system, get Qt5 support...
r205
Orochimarufan
Add PythonQt*Config.cmake
r211 add_library(${PythonQt} SHARED ${SOURCES} ${GEN_MOC} ${GEN_QRC})
Orochimarufan
Redo CMake build system, get Qt5 support...
r205 if(PythonQt_Qt5)
Orochimarufan
Now Works with Python 2 & 3, Qt 4 & 5....
r208 qt_use_modules(${PythonQt} Core Gui Widgets)
Orochimarufan
Redo CMake build system, get Qt5 support...
r205 else()
Orochimarufan
Now Works with Python 2 & 3, Qt 4 & 5....
r208 qt_use_modules(${PythonQt} Core Gui)
Orochimarufan
Redo CMake build system, get Qt5 support...
r205 endif()
Orochimarufan
Now Works with Python 2 & 3, Qt 4 & 5....
r208 target_link_libraries(${PythonQt} ${PYTHON_LIBRARIES})
Orochimarufan
Redo CMake build system, get Qt5 support...
r205
#
# 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
#
Orochimarufan
Now Works with Python 2 & 3, Qt 4 & 5....
r208 set_target_properties(${PythonQt} PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
Orochimarufan
Redo CMake build system, get Qt5 support...
r205
#-----------------------------------------------------------------------------
# Install library (on windows, put the dll in 'bin' and the archive in 'lib')
Orochimarufan
Add PythonQt*Config.cmake
r211 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)