]> Some of my projects - localmylist.git/commitdiff
Add CMake build system
authorAPTX <marek321@gmail.com>
Thu, 23 Nov 2017 13:33:57 +0000 (22:33 +0900)
committerAPTX <marek321@gmail.com>
Thu, 23 Nov 2017 13:33:57 +0000 (22:33 +0900)
33 files changed:
.gitignore
CMakeLists.txt [new file with mode: 0644]
anioni/CMakeLists.txt [new file with mode: 0644]
anioni/qtservice/CMakeLists.txt [new file with mode: 0644]
import-mylist/CMakeLists.txt [new file with mode: 0644]
import-titles/CMakeLists.txt [new file with mode: 0644]
localmylist-management/CMakeLists.txt [new file with mode: 0644]
localmylist-management/qtsingleapplication/CMakeLists.txt [new file with mode: 0644]
localmylist/CMakeLists.txt [new file with mode: 0644]
localmylist/LocalMyListConfig.cmake.in [new file with mode: 0644]
localmylist/include/LocalMyList/AbstractTask
localmylist/include/LocalMyList/AddFileTask
localmylist/include/LocalMyList/AddRelatedEpisodesTask
localmylist/include/LocalMyList/AnimeTitleParseTask
localmylist/include/LocalMyList/Database
localmylist/include/LocalMyList/DirectoryScanTask
localmylist/include/LocalMyList/DirectoryWatcher
localmylist/include/LocalMyList/FileLocationCheckTask
localmylist/include/LocalMyList/MyList
localmylist/include/LocalMyList/MyListExportParseTask
localmylist/include/LocalMyList/MyListModel
localmylist/include/LocalMyList/MyListNode
localmylist/include/LocalMyList/RaiiMyList
localmylist/include/LocalMyList/RenameUtils
localmylist/include/LocalMyList/RequestHandler
localmylist/include/LocalMyList/Service
localmylist/include/LocalMyList/ServiceManager
localmylist/include/LocalMyList/Settings
localmylist/include/LocalMyList/SqlAsyncQuery
localmylist/include/LocalMyList/SqlQuery
localmylist/include/LocalMyList/UnknownFileLookupTask
play-next/CMakeLists.txt [new file with mode: 0644]
runscript/CMakeLists.txt [new file with mode: 0644]

index 4d5d29b202e0fe6b819dae215e11e239c0476df7..f90765a79bee2d073c441ff904a5f22a2c7cd7b9 100644 (file)
@@ -31,6 +31,7 @@ qrc_*.cpp
 # qtcreator generated files
 *.pro.user
 *.pro.user.*
+CMakeLists.txt.user
 *.autosave
 *.files
 *.creator
@@ -64,6 +65,7 @@ qrc_*.cpp
 # ---------------------
 
 build
+cmakebuild
 debug
 release
 lib/qtsingleapplication/lib
@@ -73,11 +75,3 @@ lib/qtsingleapplication/doc
 qtc-gdbmacros
 test-data
 
-# Binaries
-# --------
-build/*.dll
-build/*.lib
-build/*.exe
-build/*.so*
-
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644 (file)
index 0000000..91666c4
--- /dev/null
@@ -0,0 +1,43 @@
+cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
+include(FeatureSummary)
+
+project(LocalMyList)
+
+set(QT_MIN_VERSION "5.3.0")
+
+option(WITH_ANIONI "Build anioni daemon" ON)
+add_feature_info(Anioni WITH_ANIONI "friendly LocalMyList daemon")
+
+option(WITH_GUI "Build LocalMyList management gui" ON)
+add_feature_info(Gui WITH_GUI "the main UI to manage LocalMyList")
+
+option(WITH_TOOLS "Build LocalMyList tools" ON)
+add_feature_info(Tools WITH_GUI "miscellanious tools to perform various management operations from the command line")
+
+option(WITH_RUNSCRIPT "Build LocalMyList runscript" ON)
+add_feature_info(Runscript WITH_RUNSCRIPT "tool to run custom JavaScript scripts with full access to the LocalMyList API")
+
+option(WITH_ANIDBUDPCLIENT "Build with AniDBUdpClient" ON)
+add_feature_info(AniDBUdpClient WITH_ANIDBUDPCLIENT "required for adding and/or renaming files")
+
+set(TOOL_PREFIX "lml-" CACHE STRING "Prefix for most tool executable names")
+
+
+add_subdirectory(localmylist)
+
+if(${WITH_ANIONI})
+    add_subdirectory(anioni)
+endif()
+if(${WITH_GUI})
+    add_subdirectory(localmylist-management)
+endif()
+if(${WITH_TOOLS})
+    add_subdirectory(import-titles)
+    add_subdirectory(import-mylist)
+    add_subdirectory(play-next)
+endif()
+if(${WITH_SCRIPT})
+    add_subdirectory(runscript)
+endif()
+
+feature_summary(WHAT ALL)
diff --git a/anioni/CMakeLists.txt b/anioni/CMakeLists.txt
new file mode 100644 (file)
index 0000000..46a4469
--- /dev/null
@@ -0,0 +1,53 @@
+project(anioni)
+
+add_subdirectory("qtservice")
+
+find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+    Core
+)
+
+if (WITH_ANIDBUDPCLIENT)
+    find_package(AniDBUdpClient CONFIG REQUIRED)
+endif()
+
+set(anioni_LIBS
+    Qt5::Core
+    LocalMyList::LocalMyList
+    AniDBUdpClient::AniDBUdpClient
+    qtservice
+)
+
+set(anioni_SOURCES
+    main.cpp
+    anioni.cpp
+)
+
+set(anioni_HEADERS
+    anioni.h
+)
+
+if(NOT AniDBUdpClient_FOUND)
+    add_definitions(-DLOCALMYLIST_NO_ANIDBUDPCLIENT)
+endif()
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+add_executable(anioni
+    ${anioni_SOURCES}
+    ${anioni_HEADERS}
+)
+
+set_property(TARGET anioni PROPERTY CXX_STANDARD 14)
+set_property(TARGET anioni PROPERTY OUTPUT_NAME "anioni")
+target_link_libraries(anioni ${anioni_LIBS})
+
+install(TARGETS anioni
+    LIBRARY DESTINATION lib${LIB_SUFFIX}
+    ARCHIVE DESTINATION lib${LIB_SUFFIX}
+    RUNTIME DESTINATION bin
+)
+if(WIN32)
+    install(FILES $<TARGET_PDB_FILE:anioni> DESTINATION bin OPTIONAL)
+endif()
diff --git a/anioni/qtservice/CMakeLists.txt b/anioni/qtservice/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d36d170
--- /dev/null
@@ -0,0 +1,68 @@
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
+project(qtservice)
+
+if(WIN32)
+    find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+        Core
+    )
+else()
+    find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+        Core
+        Network
+    )
+endif()
+
+set(qtservice_LIBS
+    Qt5::Core
+)
+
+set(qtservice_SOURCES
+    qtservice.cpp
+)
+
+set(qtservice_HEADERS
+    qtservice.h
+    qtservice_p.h
+
+)
+
+if(WIN32)
+    set(qtservice_SOURCES
+        ${qtservice_SOURCES}
+        qtservice_win.cpp
+    )
+else()
+    set(qtservice_SOURCES
+        ${qtservice_SOURCES}
+        qtservice_unix.cpp
+        qtunixsocket.cpp
+        qtunixserversocket.cpp
+    )
+    set(qtservice_LIBS
+        ${qtservice_LIBS}
+        Qt5::Network
+    )
+    set(qtservice_HEADERS
+        ${qtservice_HEADERS}
+        qtunixsocket.h
+        qtunixserversocket.h
+    )
+endif()
+
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+add_library(qtservice STATIC
+    ${qtservice_SOURCES}
+    ${qtservice_HEADERS}
+)
+
+set_property(TARGET qtservice PROPERTY CXX_STANDARD 14)
+target_link_libraries(qtservice ${qtservice_LIBS})
+if(WIN32)
+    add_definitions(-DUNICODE -D_UNICODE)
+endif()
+
diff --git a/import-mylist/CMakeLists.txt b/import-mylist/CMakeLists.txt
new file mode 100644 (file)
index 0000000..484f824
--- /dev/null
@@ -0,0 +1,35 @@
+project(import-mylist)
+
+find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+    Core
+)
+
+set(import-mylist_LIBS
+    Qt5::Core
+    LocalMyList::LocalMyList
+)
+
+set(import-mylist_SOURCES
+    main.cpp
+)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+add_executable(import-mylist
+    ${import-mylist_SOURCES}
+)
+
+set_property(TARGET import-mylist PROPERTY CXX_STANDARD 14)
+set_property(TARGET import-mylist PROPERTY OUTPUT_NAME "${TOOL_PREFIX}import-mylist")
+target_link_libraries(import-mylist ${import-mylist_LIBS})
+
+install(TARGETS import-mylist
+    LIBRARY DESTINATION lib${LIB_SUFFIX}
+    ARCHIVE DESTINATION lib${LIB_SUFFIX}
+    RUNTIME DESTINATION bin
+)
+if(WIN32)
+    install(FILES $<TARGET_PDB_FILE:import-mylist> DESTINATION bin OPTIONAL)
+endif()
diff --git a/import-titles/CMakeLists.txt b/import-titles/CMakeLists.txt
new file mode 100644 (file)
index 0000000..b0e6ebc
--- /dev/null
@@ -0,0 +1,35 @@
+project(import-titles)
+
+find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+    Core
+)
+
+set(import-titles_LIBS
+    Qt5::Core
+    LocalMyList::LocalMyList
+)
+
+set(import-titles_SOURCES
+    main.cpp
+)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+add_executable(import-titles
+    ${import-titles_SOURCES}
+)
+
+set_property(TARGET import-titles PROPERTY CXX_STANDARD 14)
+set_property(TARGET import-titles PROPERTY OUTPUT_NAME "${TOOL_PREFIX}import-titles")
+target_link_libraries(import-titles ${import-titles_LIBS})
+
+install(TARGETS import-titles
+    LIBRARY DESTINATION lib${LIB_SUFFIX}
+    ARCHIVE DESTINATION lib${LIB_SUFFIX}
+    RUNTIME DESTINATION bin
+)
+if(WIN32)
+    install(FILES $<TARGET_PDB_FILE:import-titles> DESTINATION bin OPTIONAL)
+endif()
diff --git a/localmylist-management/CMakeLists.txt b/localmylist-management/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a3b3547
--- /dev/null
@@ -0,0 +1,155 @@
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+project(LocalMyList-management)
+
+set(LocalMyList-management_VERSION "0.4.0")
+
+add_subdirectory("qtsingleapplication")
+
+find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+    Core
+    Gui
+    Widgets
+)
+
+set(LocalMyList-management_LIBS
+    Qt5::Core
+    Qt5::Gui
+    Qt5::Widgets
+    LocalMyList::LocalMyList
+    qtsingleapplication
+)
+
+if(WITH_ANIDBUDPCLIENT)
+    find_package(AniDBUdpClient CONFIG REQUIRED)
+endif()
+
+set(LocalMyList-management_SOURCES
+    main.cpp
+    mainwindow.cpp
+    databaseconnectiondialog.cpp
+    mylistview.cpp
+    mylistfiltermodel.cpp
+    reporteditordialog.cpp
+    versiondialog.cpp
+    mylistitemdelegate.cpp
+    filterlineedit.cpp
+    tabwidget.cpp
+    abstracttab.cpp
+    tabs/mylisttab.cpp
+    tabs/searchtab.cpp
+    tabs/reportstab.cpp
+    tabs/unknownfilestab.cpp
+    tabs/pendingrequesttab.cpp
+    registertabs.cpp
+    tabs/databaselogtab.cpp
+    tabs/clientlogtab.cpp
+    tabs/dynamicmodeltab.cpp
+    tabs/pathmappingtab.cpp
+    tabs/hosttab.cpp
+    tabs/watcheddirectoriestab.cpp
+    fonts.cpp
+    aniaddsyntaxhighlighter.cpp
+    settingsdialog.cpp
+    codeeditor.cpp
+    dynamicmodelfiltermodel.cpp
+    dynamicmodelview.cpp
+    dynamicmodelitemdelegate.cpp
+
+    mainwindow.ui
+    databaseconnectiondialog.ui
+    settingsdialog.ui
+    tabs/mylisttab.ui
+    tabs/searchtab.ui
+    tabs/reportstab.ui
+    tabs/unknownfilestab.ui
+    tabs/pendingrequesttab.ui
+    tabs/databaselogtab.ui
+    tabs/clientlogtab.ui
+    tabs/dynamicmodeltab.ui
+    tabs/pathmappingtab.ui
+    tabs/hosttab.ui
+    tabs/watcheddirectoriestab.ui
+
+    resources.qrc
+
+#    localmylist-management.rc
+)
+
+set(LocalMyList-management_HEADERS
+    mainwindow.h
+    databaseconnectiondialog.h
+    mylistview.h
+    mylistfiltermodel.h
+    reporteditordialog.h
+    versiondialog.h
+    mylistitemdelegate.h
+    filterlineedit.h
+    tabwidget.h
+    abstracttab.h
+    tabs/mylisttab.h
+    tabs/searchtab.h
+    tabs/reportstab.h
+    tabs/unknownfilestab.h
+    tabs/pendingrequesttab.h
+    tabs/databaselogtab.h
+    tabs/clientlogtab.h
+    tabs/dynamicmodeltab.h
+    tabs/pathmappingtab.h
+    tabs/hosttab.h
+    tabs/watcheddirectoriestab.h
+    fonts.h
+    aniaddsyntaxhighlighter.h
+    settingsdialog.h
+    codeeditor.h
+    dynamicmodelfiltermodel.h
+    dynamicmodelview.h
+    dynamicmodelitemdelegate.h
+)
+
+if(AniDBUdpClient_FOUND)
+    set(LocalMyList-management_SOURCES
+        ${LocalMyList-management_SOURCES}
+        renamesettingsdialog.cpp
+
+        renamesettingsdialog.ui
+    )
+
+    set(LocalMyList-management_HEADERS
+        ${LocalMyList-management_HEADERS}
+        renamesettingsdialog.h
+    )
+    set(LocalMyList-management_CONV_HEADERS
+        ${LocalMyList-management_CONV_HEADERS}
+        include/LocalMyList/RenameUtils
+        include/LocalMyList/RequestHandler
+    )
+
+    set(LocalMyList-management_LIBS
+        ${LocalMyList-management_LIBS}
+        AniDBUdpClient::AniDBUdpClient
+    )
+else()
+    add_definitions(-DLOCALMYLIST_NO_ANIDBUDPCLIENT)
+endif()
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+add_executable(LocalMyList-management WIN32
+    ${LocalMyList-management_SOURCES}
+    ${LocalMyList-management_HEADERS}
+)
+set_property(TARGET LocalMyList-management PROPERTY CXX_STANDARD 14)
+set_property(TARGET LocalMyList-management PROPERTY PUBLIC_HEADER ${LocalMyList_PUBLIC_HEADERS})
+set_property(TARGET LocalMyList-management PROPERTY OUTPUT_NAME "localmylist-management")
+target_link_libraries(LocalMyList-management ${LocalMyList-management_LIBS})
+
+install(TARGETS LocalMyList-management
+    LIBRARY DESTINATION lib${LIB_SUFFIX}
+    ARCHIVE DESTINATION lib${LIB_SUFFIX}
+    RUNTIME DESTINATION bin
+)
+if(WIN32)
+    install(FILES $<TARGET_PDB_FILE:LocalMyList-management> DESTINATION bin OPTIONAL)
+endif()
diff --git a/localmylist-management/qtsingleapplication/CMakeLists.txt b/localmylist-management/qtsingleapplication/CMakeLists.txt
new file mode 100644 (file)
index 0000000..30a3d46
--- /dev/null
@@ -0,0 +1,41 @@
+set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
+project(qtsingleapplication)
+
+find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+    Core
+    Widgets
+    Network
+)
+
+set(qtsingleapplication_LIBS
+    Qt5::Core
+    Qt5::Widgets
+    Qt5::Network
+)
+
+set(qtsingleapplication_SOURCES
+    qtsingleapplication.cpp
+    qtlocalpeer.cpp
+)
+
+set(qtsingleapplication_HEADERS
+    qtsingleapplication.h
+    qtlocalpeer.h
+)
+
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+add_library(qtsingleapplication STATIC
+    ${qtsingleapplication_SOURCES}
+    ${qtsingleapplication_HEADERS}
+)
+
+set_property(TARGET qtsingleapplication PROPERTY CXX_STANDARD 14)
+target_link_libraries(qtsingleapplication ${qtsingleapplication_LIBS})
+if(WIN32)
+    add_definitions(-DUNICODE -D_UNICODE)
+endif()
+
diff --git a/localmylist/CMakeLists.txt b/localmylist/CMakeLists.txt
new file mode 100644 (file)
index 0000000..2a35666
--- /dev/null
@@ -0,0 +1,241 @@
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
+project(LocalMyList)
+
+set(LocalMyList_VERSION "0.4.0")
+
+find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+    Core
+    Widgets
+    Sql
+    Script
+)
+
+find_package(Boost REQUIRED)
+set_package_properties(Boost PROPERTIES
+    PURPOSE "Boost intrusive is used in dynamicmodel"
+)
+
+set(LocalMyList_PUBLIC_LIBS
+    Qt5::Core
+    Qt5::Sql
+)
+
+set(LocalMyList_LIBS
+    Qt5::Script
+    Boost::boost
+)
+
+if(WITH_ANIDBUDPCLIENT)
+    find_package(AniDBUdpClient CONFIG REQUIRED)
+endif()
+
+set(LocalMyList_SOURCES
+    database.cpp
+    workthread.cpp
+    addfiletask.cpp
+    abstracttask.cpp
+    directoryscantask.cpp
+    mylist.cpp
+    mylistmodel.cpp
+    mylistnode.cpp
+    mylistnodedata.cpp
+    animetitleparsetask.cpp
+    mylistexportparsetask.cpp
+    settings.cpp
+    unknownfilelookuptask.cpp
+    directorywatcher.cpp
+    addrelatedepisodestask.cpp
+    scriptablesql.cpp
+    reportengine.cpp
+    databaseclasses.cpp
+    sqlquery.cpp
+    sqlasyncquery.cpp
+    sqlasyncqueryinternal.cpp
+    filelocationchecktask.cpp
+    messagehandler.cpp
+    asyncquerytask.cpp
+    service.cpp
+    raiimylist.cpp
+    servicemanager.cpp
+    dynamicmodel/data.cpp
+    dynamicmodel/node.cpp
+    dynamicmodel/model.cpp
+    dynamicmodel/datatype.cpp
+    dynamicmodel/types.cpp
+    dynamicmodel/datamodel.cpp
+    dynamicmodel/typerelation.cpp
+    dynamicmodel/queryparser.cpp
+
+    scriptable.cpp
+)
+
+set(LocalMyList_PUBLIC_HEADERS
+    localmylist_global.h
+    database.h
+    workthread.h
+    addfiletask.h
+    abstracttask.h
+    directoryscantask.h
+    mylist.h
+    mylistmodel.h
+    mylistnode.h
+    mylistnodedata.h
+    animetitleparsetask.h
+    mylistexportparsetask.h
+    settings.h
+    unknownfilelookuptask.h
+    directorywatcher.h
+    addrelatedepisodestask.h
+    scriptablesql.h
+    reportengine.h
+    databaseclasses.h
+    sqlquery.h
+    sqlasyncquery.h
+    sqlasyncqueryinternal.h
+    asyncquerytask.h
+    filelocationchecktask.h
+    sqlresultiteratorinterface.h
+    service.h
+    servicemanager.h
+    raiimylist.h
+    dynamicmodel/data.h
+    dynamicmodel/node.h
+    dynamicmodel/model.h
+    dynamicmodel/datatype.h
+    dynamicmodel/dynamicmodel_global.h
+    dynamicmodel/types.h
+    dynamicmodel/datamodel.h
+    dynamicmodel/typerelation.h
+    dynamicmodel/queryparser.h
+
+    scriptable.h
+)
+
+set(LocalMyList_CONV_HEADERS
+    include/LocalMyList/AbstractTask
+    include/LocalMyList/AddFileTask
+    include/LocalMyList/AddRelatedEpisodesTask
+    include/LocalMyList/AnimeTitleParseTask
+    include/LocalMyList/Database
+    include/LocalMyList/SqlQuery
+    include/LocalMyList/DirectoryScanTask
+    include/LocalMyList/MyList
+    include/LocalMyList/MyListExportParseTask
+    include/LocalMyList/MyListModel
+    include/LocalMyList/MyListNode
+    include/LocalMyList/Service
+    include/LocalMyList/ServiceManager
+    include/LocalMyList/Settings
+    include/LocalMyList/UnknownFileLookupTask
+    include/LocalMyList/UnknownFileLookupTask
+    include/LocalMyList/FileLocationCheckTask
+    include/LocalMyList/RequestHandler
+    include/LocalMyList/DirectoryWatcher
+    include/LocalMyList/RaiiMyList
+)
+
+install(FILES ${LocalMyList_CONV_HEADERS}
+    DESTINATION include/LocalMyList
+)
+
+set(LocalMyList_SHARE
+    share/schema/schema.sql
+    share/schema/default_config.sql
+)
+
+install(FILES ${LocalMyList_SHARE}
+    DESTINATION share/LocalMyList
+)
+
+if(NOT AniDBUdpClient_WITH_RENAMEPARSER)
+    message(FATAL_ERROR "AniDBUdpClient must be compiled with WITH_RENAMEPARSER")
+endif()
+
+if(AniDBUdpClient_FOUND)
+    set(LocalMyList_SOURCES
+        ${LocalMyList_SOURCES}
+        requesthandler.cpp
+        renamehandler.cpp
+        renameutils.cpp
+    )
+
+    set(LocalMyList_PUBLIC_HEADERS
+        ${LocalMyList_PUBLIC_HEADERS}
+        requesthandler.h
+        renamehandler.h
+        renameutils.h
+    )
+    set(LocalMyList_CONV_HEADERS
+        ${LocalMyList_CONV_HEADERS}
+        include/LocalMyList/RenameUtils
+        include/LocalMyList/RequestHandler
+    )
+
+    set(LocalMyList_LIBS
+        ${LocalMyList_LIBS}
+        AniDBUdpClient::AniDBUdpClient
+    )
+else()
+    add_definitions(-DLOCALMYLIST_NO_ANIDBUDPCLIENT)
+endif()
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+add_library(LocalMyList SHARED
+    ${LocalMyList_SOURCES}
+    ${LocalMyList_HEADERS}
+    ${LocalMyList_PUBLIC_HEADERS}
+)
+add_library(LocalMyList::LocalMyList ALIAS LocalMyList)
+set_property(TARGET LocalMyList PROPERTY CXX_STANDARD 14)
+set_property(TARGET LocalMyList PROPERTY PUBLIC_HEADER ${LocalMyList_PUBLIC_HEADERS})
+set_property(TARGET LocalMyList PROPERTY OUTPUT_NAME "localmylist")
+target_link_libraries(LocalMyList
+    PUBLIC ${LocalMyList_PUBLIC_LIBS}
+    PRIVATE ${LocalMyList_LIBS})
+
+# This is the Qt generated export macro
+# TODO replace with export header?
+add_definitions(-DLOCALMYLIST_LIBRARY)
+
+set(CONFIG_INSTALL_DIRECTORY "lib${LIB_SUFFIX}/cmake/LocalMyList")
+
+install(TARGETS LocalMyList
+    EXPORT LocalMyListTargets
+    LIBRARY DESTINATION lib${LIB_SUFFIX}
+    ARCHIVE DESTINATION lib${LIB_SUFFIX}
+    RUNTIME DESTINATION bin
+    INCLUDES DESTINATION include/LocalMyList
+    PUBLIC_HEADER DESTINATION include/LocalMyList
+)
+if(WIN32)
+    install(FILES $<TARGET_PDB_FILE:LocalMyList> DESTINATION bin OPTIONAL)
+endif()
+
+# Config file
+set(CONFIG_NAME "${PROJECT_NAME}")
+
+install(EXPORT LocalMyListTargets
+    FILE LocalMyListTargets.cmake
+    NAMESPACE LocalMyList::
+    DESTINATION ${CONFIG_INSTALL_DIRECTORY}
+)
+
+include(CMakePackageConfigHelpers)
+configure_package_config_file(${CONFIG_NAME}Config.cmake.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}Config.cmake
+    INSTALL_DESTINATION ${LIB_INSTALL_DIR}/${CONFIG_NAME}/cmake
+)
+write_basic_package_version_file(LocalMyListConfigVersion.cmake
+    VERSION ${LocalMyList_VERSION}
+    COMPATIBILITY SameMajorVersion
+)
+
+install(FILES
+  "${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}Config.cmake"
+  "${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}ConfigVersion.cmake"
+  DESTINATION ${CONFIG_INSTALL_DIRECTORY}
+)
diff --git a/localmylist/LocalMyListConfig.cmake.in b/localmylist/LocalMyListConfig.cmake.in
new file mode 100644 (file)
index 0000000..dd9f4dc
--- /dev/null
@@ -0,0 +1,11 @@
+@PACKAGE_INIT@
+
+# TODO when CMake can automatically find transitive deps, this can be removed
+include(CMakeFindDependencyMacro)
+
+# TODO find_dependency with components is nonstandard
+find_dependency(Qt5Sql)
+
+include("${CMAKE_CURRENT_LIST_DIR}/@CONFIG_NAME@Targets.cmake")
+
+check_required_components(@CONFIG_NAME@)
index bb5360a8213d46528c59c32cf31e80a2b82e1c32..7c315464ec7d6bf07d862bfab6bf304e210fae6f 100644 (file)
@@ -1 +1 @@
-#include "../../abstracttask.h"
+#include "abstracttask.h"
index e2f2a91e4f28fb37bddf902670a5a644d4ffc8da..bd47aa396ad65c2f621cba9aae7ae88a32d3db99 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../addfiletask.h"
+#include "addfiletask.h"
 
index c824e18ff27cc530e2e349c7073444291aafff4a..7aae147a0ff936433cf5d301bd414b8a6c987cd4 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../addrelatedepisodestask.h"
+#include "addrelatedepisodestask.h"
 
index ea0165448def8ba65182d6f6e05b5d0bb7cbff2d..9df2afa3fbe50b9ccc65278210d02b982192a4c8 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../animetitleparsetask.h"
+#include "animetitleparsetask.h"
 
index eaebf018becd797420d925feea9346cf37e4a93a..7eabc17d9d99b30c31a2725883ee97cc2db6a81d 100644 (file)
@@ -1 +1 @@
-#include "../../database.h"
+#include "database.h"
index 2a9f628c95288e5c1e2d814852cd8a2db492cdd3..3b6127c88c89d51153f1e7d11b7ae8e67aa97efc 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../directoryscan.h"
+#include "directoryscan.h"
 
index f7b72b9f4f4eb5e47d8c2bde8fa16909c0496bef..c4e8c9ecab410a1fb3f9f1789a0c3c0eac600e39 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../directorywatcher.h"
+#include "directorywatcher.h"
 
index e829e7834bb50525f68c533c0b91a5517a158d53..bd4f0a16812a81b1f5da575ea570b1d60cc8eeb6 100644 (file)
@@ -1 +1 @@
-#include "../../filelocationchecktask.h"
\ No newline at end of file
+#include "filelocationchecktask.h"
\ No newline at end of file
index 0cbafda0a69d813de26e5c983a03487c4e382c64..7dcb30f1b61d31aec3ed2d7464f41b125ff9483c 100644 (file)
@@ -1 +1 @@
-#include "../../mylist.h"
+#include "mylist.h"
index de76dd58370957cf6bd98860d43d82f4a08d5030..4b9f578985a5c5920c23fb6dac3b4df7ad685b69 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../mylistexportparsetask.h"
+#include "mylistexportparsetask.h"
 
index a9f138a968f9004335bc053490479c50e7c4bded..7adee59c333518892ff4dc756378266cb65ff649 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../mylistmodel.h"
+#include "mylistmodel.h"
 
index a53ff656af03ffd12a7e3c7fea878f90c03c147d..d780bce89d3e91e7e80f6f7bd6ab7a13dc77e2c8 100644 (file)
@@ -1 +1 @@
-#include "../../mylistnode.h"
+#include "mylistnode.h"
index 0b0f8cea5fe88227492173930a542907b7a555bd..4a3ba4c71cae3a1ee79377cd4d3cd0dffb4495e3 100644 (file)
@@ -1 +1 @@
-#include "../../raiimylist.h"
+#include "raiimylist.h"
index a2ef5acf67d220a476da20d9052996107152b227..2e9c940bf55665a783311d620a5cdc25d07c3033 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../renameutils.h"
+#include "renameutils.h"
 
index a42b154660193e518e17c4608255bd39cbc7690f..81f9901b763bd1de43c02674ee7413859ad3bd0e 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../requesthandler.h"
+#include "requesthandler.h"
 
index c1bedfb4da4c504a052190da85810ea7f68578f5..2b55f370854f41fa609b3e6a9f2a7fe98c7216d6 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../service.h"
+#include "service.h"
 
index 54f91e51538ba75767612d34d18aa21ea173abe6..7c964c9d976e015b9a5cbea04e49771a537b7352 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../servicemanager.h"
+#include "servicemanager.h"
 
index 40dfe8fab5406a2d6b12009135b2e042c131da48..6816e884ecdcc82d8bb0c77f9f346ac47d2e383c 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../settings.h"
+#include "settings.h"
 
index cb1ab36bee252d8d41a548b79c848cf0adb18211..2be539f6ea185d5dc6ebe8b3e67e43eba5dfbbd8 100644 (file)
@@ -1 +1 @@
-#include "../../sqlasyncquery.h"
+#include "sqlasyncquery.h"
index 43f11d50e8158c280bf0e19ce268f381dbc05269..24cf2c130257c31f3796b46f3c3eacc337c7a4b1 100644 (file)
@@ -1 +1 @@
-#include "../../sqlquery.h"
+#include "sqlquery.h"
index 32834202bde6305cbf2845c617821bf863a17d7d..b520e7bbd1ff73877b2b520e7b5d334a9d2a5211 100644 (file)
@@ -1,2 +1,2 @@
-#include "../../unknownfilelookuptask.h"
+#include "unknownfilelookuptask.h"
 
diff --git a/play-next/CMakeLists.txt b/play-next/CMakeLists.txt
new file mode 100644 (file)
index 0000000..983d316
--- /dev/null
@@ -0,0 +1,36 @@
+project(play-next)
+
+find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+    Core
+)
+
+set(play-next_LIBS
+    Qt5::Core
+    LocalMyList::LocalMyList
+)
+
+set(play-next_SOURCES
+    main.cpp
+)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+add_executable(play-next
+    ${play-next_SOURCES}
+)
+
+set_property(TARGET play-next PROPERTY CXX_STANDARD 14)
+# NOTE play-next did not have a prefix
+set_property(TARGET play-next PROPERTY OUTPUT_NAME "play-next")
+target_link_libraries(play-next ${play-next_LIBS})
+
+install(TARGETS play-next
+    LIBRARY DESTINATION lib${LIB_SUFFIX}
+    ARCHIVE DESTINATION lib${LIB_SUFFIX}
+    RUNTIME DESTINATION bin
+)
+if(WIN32)
+    install(FILES $<TARGET_PDB_FILE:play-next> DESTINATION bin OPTIONAL)
+endif()
diff --git a/runscript/CMakeLists.txt b/runscript/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5a519ed
--- /dev/null
@@ -0,0 +1,37 @@
+project(runscript)
+
+set(QT_MIN_VERSION "5.3.0")
+
+find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+    Core
+       Script
+)
+
+set(runscript_LIBS
+    Qt5::Core
+       Qt5::Script
+    LocalMyList::LocalMyList
+)
+
+set(runscript_SOURCES
+    main.cpp
+)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+add_executable(runscript
+    ${runscript_SOURCES}
+)
+
+set_property(TARGET runscript PROPERTY CXX_STANDARD 14)
+set_property(TARGET runscript PROPERTY OUTPUT_NAME "${TOOL_PREFIX}runscript")
+target_link_libraries(runscript ${runscript_LIBS})
+
+install(TARGETS runscript
+    LIBRARY DESTINATION lib${LIB_SUFFIX}
+    ARCHIVE DESTINATION lib${LIB_SUFFIX}
+    RUNTIME DESTINATION bin
+)
+install(FILES $<TARGET_PDB_FILE:runscript> DESTINATION bin OPTIONAL)