cmake_minimum_required(VERSION 3.16) project(Dbconverter VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}") # ------------------------ # Sources # ------------------------ set(dbconverter_SOURCES src/main.cpp src/mocks.cpp ${VERSION_STRING_CPP}) # ------------------------ # Qt configuration # ------------------------ set(QT_DONT_USE_QTGUI TRUE) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) # ------------------------ # Build executable # ------------------------ add_executable(dbconverter MACOSX_BUNDLE ${dbconverter_SOURCES}) # ------------------------ # Link libraries # ------------------------ target_link_libraries( dbconverter PRIVATE libcockatrice_card PRIVATE libcockatrice_settings PRIVATE ${DB_CONVERTER_QT_MODULES} ) # ------------------------ # Install rules # ------------------------ if(UNIX) if(APPLE) set(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME}") set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.cockatrice.${PROJECT_NAME}") set(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME}-${PROJECT_VERSION}") set(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME}) set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}) set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}) install(TARGETS dbconverter BUNDLE DESTINATION ./) else() # Linux install(TARGETS dbconverter RUNTIME DESTINATION bin/) endif() elseif(WIN32) install(TARGETS dbconverter RUNTIME DESTINATION ./) endif() # ------------------------ # Qt plugin handling # ------------------------ if(APPLE) set(plugin_dest_dir dbconverter.app/Contents/Plugins) set(qtconf_dest_dir dbconverter.app/Contents/Resources) install( DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime FILES_MATCHING PATTERN "*.dSYM" EXCLUDE PATTERN "*_debug.dylib" EXCLUDE PATTERN "platforms/*.dylib" ) install( CODE " file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qtconf_dest_dir}/qt.conf\" \"[Paths] Plugins = Plugins Translations = Resources/translations\") " COMPONENT Runtime ) install( CODE " file(GLOB_RECURSE QTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*.dylib\") set(BU_CHMOD_BUNDLE_ITEMS ON) include(BundleUtilities) fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/dbconverter.app\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR};${MYSQLCLIENT_LIBRARY_DIR}\") " COMPONENT Runtime ) endif() if(WIN32) set(plugin_dest_dir Plugins) set(qtconf_dest_dir .) install( DIRECTORY "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${CMAKE_BUILD_TYPE}/" DESTINATION ./ FILES_MATCHING PATTERN "*.dll" ) install( DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime FILES_MATCHING PATTERN "platforms/qdirect2d.dll" PATTERN "platforms/qminimal.dll" PATTERN "platforms/qoffscreen.dll" PATTERN "platforms/qwindows.dll" ) install( CODE " file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qtconf_dest_dir}/qt.conf\" \"[Paths] Plugins = Plugins Translations = Resources/translations\") " COMPONENT Runtime ) install( CODE " file(GLOB_RECURSE QTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*.dll\") set(BU_CHMOD_BUNDLE_ITEMS ON) include(BundleUtilities) fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/dbconverter.exe\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR}\") " COMPONENT Runtime ) endif()