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 set(PythonQt ${PythonQt_LibraryName}${PythonQt_LibrarySuffix} CACHE INTERNAL "") include_directories(${CMAKE_CURRENT_SOURCE_DIR}) 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') install(TARGETS ${PythonQt} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) install(FILES ${headers} DESTINATION include/PythonQt)