Split MultiMC up into a few separate libraries.
Fixed plugin system. Tons of other stuff...
This commit is contained in:
@ -10,22 +10,40 @@ find_package(Qt5Network REQUIRED)
|
||||
include_directories(${Qt5Base_INCLUDE_DIRS})
|
||||
include_directories(${Qt5Network_INCLUDE_DIRS})
|
||||
|
||||
# Include MultiMC's headers.
|
||||
include_directories(../../)
|
||||
# Include the Java library.
|
||||
include_directories(${CMAKE_SOURCE_DIR}/java)
|
||||
|
||||
# Include utils library headers.
|
||||
include_directories(${CMAKE_SOURCE_DIR}/libutil/include)
|
||||
|
||||
# Include settings library headers.
|
||||
include_directories(${CMAKE_SOURCE_DIR}/libsettings/include)
|
||||
|
||||
# Include instance library headers.
|
||||
include_directories(${CMAKE_SOURCE_DIR}libinstance/include)
|
||||
|
||||
SET(STDINST_HEADERS
|
||||
stdinstplugin.h
|
||||
stdinstancetype.h
|
||||
stdinstance.h
|
||||
)
|
||||
|
||||
SET(STDINST_SOURCES
|
||||
stdinstplugin.cpp
|
||||
stdinstancetype.cpp
|
||||
stdinstance.cpp
|
||||
)
|
||||
|
||||
add_library(stdinstance SHARED ${STDINST_SOURCES} ${STDINST_HEADERS})
|
||||
|
||||
set_target_properties(stdinstance PROPERTIES PREFIX "")
|
||||
set_target_properties(stdinstance PROPERTIES RUNTIME_OUTPUT_DIRECTORY "..")
|
||||
|
||||
qt5_use_modules(stdinstance Core Network)
|
||||
target_link_libraries(stdinstance quazip patchlib)
|
||||
target_link_libraries(stdinstance
|
||||
quazip
|
||||
patchlib
|
||||
|
||||
# Link the util, settings, and instance libraries.
|
||||
libmmcutil
|
||||
libmmcsettings
|
||||
libmmcinst
|
||||
)
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
#include <QFileInfo>
|
||||
|
||||
#include <java/javautils.h>
|
||||
#include <javautils.h>
|
||||
|
||||
StdInstance::StdInstance(const QString &rootDir, QObject *parent) :
|
||||
Instance(rootDir, parent)
|
||||
@ -47,7 +47,8 @@ void StdInstance::updateCurrentVersion(bool keepCurrent)
|
||||
setLastVersionUpdate(time);
|
||||
if (!keepCurrent)
|
||||
{
|
||||
QString newVersion = javautils::GetMinecraftJarVersion(jar.absoluteFilePath());
|
||||
// TODO: Implement GetMinecraftJarVersion function.
|
||||
QString newVersion = "Unknown";//javautils::GetMinecraftJarVersion(jar.absoluteFilePath());
|
||||
setCurrentVersion(newVersion);
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
#ifndef STDINSTANCE_H
|
||||
#define STDINSTANCE_H
|
||||
|
||||
#include <data/inst/instance.h>
|
||||
#include <instance.h>
|
||||
|
||||
class StdInstance : public Instance
|
||||
{
|
||||
|
@ -1 +1,8 @@
|
||||
{}
|
||||
{
|
||||
"api": "MultiMC5-API-1",
|
||||
|
||||
"name": "Standard Instance Plugin",
|
||||
"summary": "A plugin that provides standard Minecraft instances.",
|
||||
"description": "This is a built-in plugin that provides the standard Minecraft instance.",
|
||||
"version": "0.1"
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include "stdinstancetype.h"
|
||||
|
||||
StdInstanceType::StdInstanceType(QObject *parent) :
|
||||
InstanceType(parent)
|
||||
QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -16,11 +16,15 @@
|
||||
#ifndef STDINSTANCETYPE_H
|
||||
#define STDINSTANCETYPE_H
|
||||
|
||||
#include <data/inst/instancetype.h>
|
||||
#include <instancetypeinterface.h>
|
||||
|
||||
class StdInstanceType : public InstanceType
|
||||
#define StdInstanceType_IID "net.forkk.MultiMC.StdInstanceType/0.1"
|
||||
|
||||
class StdInstanceType : public QObject, InstanceTypeInterface
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID StdInstanceType_IID FILE "stdinstance.json")
|
||||
Q_INTERFACES(InstanceTypeInterface)
|
||||
public:
|
||||
explicit StdInstanceType(QObject *parent = 0);
|
||||
|
||||
|
@ -1,27 +0,0 @@
|
||||
/* Copyright 2013 MultiMC Contributors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "stdinstplugin.h"
|
||||
|
||||
#include <QtPlugin>
|
||||
|
||||
#include "stdinstancetype.h"
|
||||
|
||||
QList<InstanceType *> StdInstPlugin::getInstanceTypes()
|
||||
{
|
||||
QList<InstanceType *> types;
|
||||
types.push_back(new StdInstanceType(this));
|
||||
return types;
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
/* Copyright 2013 MultiMC Contributors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef STDINSTPLUGIN_H
|
||||
#define STDINSTPLUGIN_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include <data/plugin/instancetypeplugin.h>
|
||||
|
||||
class StdInstPlugin : public QObject, InstanceTypePlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(InstanceTypePlugin)
|
||||
Q_PLUGIN_METADATA(IID "net.forkk.MultiMC.Plugins.StdInstance")
|
||||
|
||||
public:
|
||||
virtual QList<InstanceType *> getInstanceTypes();
|
||||
};
|
||||
|
||||
#endif // STDINSTPLUGIN_H
|
Reference in New Issue
Block a user