This commit is contained in:
commit
1beef3f73c
157
CMakeLists.txt
157
CMakeLists.txt
@ -35,10 +35,16 @@ include_directories(patchlib)
|
||||
# add the java launcher
|
||||
add_subdirectory(launcher)
|
||||
|
||||
IF(UNIX)
|
||||
IF(APPLE)
|
||||
# assume clang 4.1.0+, add C++0x/C++11 stuff
|
||||
message(STATUS "Using APPLE CMAKE_CXX_FLAGS")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -stdlib=libc++")
|
||||
ELSEIF(UNIX)
|
||||
# assume GCC, add C++0x/C++11 stuff
|
||||
message(STATUS "Using UNIX CMAKE_CXX_FLAGS")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
||||
ELSEIF(MINGW)
|
||||
message(STATUS "Using MINGW CMAKE_CXX_FLAGS")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
|
||||
ENDIF()
|
||||
|
||||
@ -133,6 +139,8 @@ data/stdinstance.h
|
||||
data/version.h
|
||||
data/userinfo.h
|
||||
data/loginresponse.h
|
||||
data/siglist.h
|
||||
data/siglist_imp.h
|
||||
|
||||
util/apputils.h
|
||||
util/pathutils.h
|
||||
@ -161,50 +169,125 @@ gui/logindialog.ui
|
||||
gui/taskdialog.ui
|
||||
)
|
||||
|
||||
IF(WIN32)
|
||||
SET(MultiMC_LINK_ADDITIONAL_LIBS ${MultiMC_LINK_ADDITIONAL_LIBS}
|
||||
Ws2_32)
|
||||
ENDIF()
|
||||
################################ Install ################################
|
||||
|
||||
################ ICNS File ################
|
||||
|
||||
IF(APPLE)
|
||||
SET(MACOSX_BUNDLE_ICON_FILE MultiMC.icns)
|
||||
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/MultiMC.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||
SET(MULTIMC_SOURCES ${MULTIMC_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/MultiMC.icns)
|
||||
ENDIF(APPLE)
|
||||
|
||||
|
||||
################ Build ################
|
||||
|
||||
IF (WIN32)
|
||||
SET(MultiMC_LINK_ADDITIONAL_LIBS ${MultiMC_LINK_ADDITIONAL_LIBS}
|
||||
Qt5::WinMain
|
||||
)
|
||||
ENDIF (WIN32)
|
||||
|
||||
SET_SOURCE_FILES_PROPERTIES(resources/MultiMCLauncher.jar GENERATED)
|
||||
|
||||
QT5_WRAP_UI(MULTIMC_UI ${MULTIMC5_UIS})
|
||||
QT5_ADD_RESOURCES(MULTIMC_QRC multimc.qrc)
|
||||
|
||||
add_executable(MultiMC ${MULTIMC_SOURCES} ${MULTIMC_HEADERS} ${MULTIMC_UI} ${MULTIMC_QRC})
|
||||
add_executable(MultiMC MACOSX_BUNDLE WIN32 ${MULTIMC_SOURCES} ${MULTIMC_HEADERS} ${MULTIMC_UI} ${MULTIMC_QRC})
|
||||
qt5_use_modules(MultiMC Widgets Network)
|
||||
target_link_libraries(MultiMC quazip patchlib ${MultiMC_LINK_ADDITIONAL_LIBS})
|
||||
add_dependencies(MultiMC MultiMCLauncher)
|
||||
install(TARGETS MultiMC RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
|
||||
################ Dirs ################
|
||||
|
||||
SET(PLUGIN_DEST_DIR bin)
|
||||
SET(QTCONF_DEST_DIR bin)
|
||||
SET(APPS "\${CMAKE_INSTALL_PREFIX}/bin/MultiMC")
|
||||
|
||||
IF(WIN32)
|
||||
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
SET(D "d")
|
||||
#SET(PLUGIN_DEST_DIR .)
|
||||
#SET(QTCONF_DEST_DIR .)
|
||||
SET(APPS "\${CMAKE_INSTALL_PREFIX}/bin/MultiMC.exe")
|
||||
ENDIF()
|
||||
IF(APPLE)
|
||||
SET(PLUGIN_DEST_DIR MultiMC.app/Contents/MacOS)
|
||||
SET(QTCONF_DEST_DIR MultiMC.app/Contents/Resources)
|
||||
SET(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.app")
|
||||
ENDIF()
|
||||
|
||||
SET(QT_PLUGINS_DIR ${Qt5_DIR}/plugins)
|
||||
SET(QT_LIBRARY_DIRS ${Qt5_DIR}/lib)
|
||||
|
||||
|
||||
################ OS X Bundle Info ################
|
||||
|
||||
IF(APPLE)
|
||||
SET(MACOSX_BUNDLE_BUNDLE_NAME "MultiMC")
|
||||
SET(MACOSX_BUNDLE_INFO_STRING "MultiMC Minecraft launcher and management utility.")
|
||||
SET(MACOSX_BUNDLE_BUNDLE_VERSION "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_REV}.${MultiMC_VERSION_BUILD}")
|
||||
#SET(MACOSX_BUNDLE_GUI_IDENTIFIER "")
|
||||
SET(MACOSX_BUNDLE_ICON_FILE MultiMC.icns)
|
||||
ENDIF(APPLE)
|
||||
|
||||
################ Install ################
|
||||
|
||||
# Executable
|
||||
IF(WIN32)
|
||||
INSTALL(TARGETS MultiMC
|
||||
BUNDLE DESTINATION . COMPONENT Runtime
|
||||
RUNTIME DESTINATION bin COMPONENT Runtime
|
||||
)
|
||||
ENDIF()
|
||||
IF(UNIX)
|
||||
IF(APPLE)
|
||||
INSTALL(TARGETS MultiMC
|
||||
BUNDLE DESTINATION . COMPONENT Runtime
|
||||
RUNTIME DESTINATION MultiMC.app/Contents/MacOS COMPONENT Runtime
|
||||
)
|
||||
ELSE()
|
||||
SET(D "")
|
||||
INSTALL(TARGETS MultiMC
|
||||
BUNDLE DESTINATION . COMPONENT Runtime
|
||||
RUNTIME DESTINATION bin COMPONENT Runtime
|
||||
)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
install(FILES "${Qt5_DIR}/plugins/platforms/qwindows${D}.dll" DESTINATION platforms)
|
||||
install(FILES "${Qt5_DIR}/plugins/platforms/qminimal${D}.dll" DESTINATION platforms)
|
||||
install(FILES "${Qt5_DIR}/bin/libEGL${D}.dll" DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
# Plugins
|
||||
|
||||
install(FILES "${Qt5_DIR}/plugins/imageformats/qsvg${D}.dll" DESTINATION imageformats)
|
||||
install(FILES "${Qt5_DIR}/plugins/imageformats/qico${D}.dll" DESTINATION imageformats)
|
||||
install(FILES "${Qt5_DIR}/plugins/imageformats/qgif${D}.dll" DESTINATION imageformats)
|
||||
install(FILES "${Qt5_DIR}/plugins/imageformats/qjpeg${D}.dll" DESTINATION imageformats)
|
||||
# Image formats
|
||||
INSTALL(DIRECTORY "${QT_PLUGINS_DIR}/imageformats" DESTINATION ${PLUGIN_DEST_DIR} COMPONENT Runtime)
|
||||
|
||||
ELSEIF(UNIX)
|
||||
ENDIF()
|
||||
# Platform plugins
|
||||
INSTALL(DIRECTORY "${QT_PLUGINS_DIR}/platforms" DESTINATION ${PLUGIN_DEST_DIR} COMPONENT Runtime)
|
||||
|
||||
# qtconf
|
||||
INSTALL(CODE "
|
||||
FILE(WRITE \"\${CMAKE_INSTALL_PREFIX}/${QTCONF_DEST_DIR}/qt.conf\" \"\")
|
||||
" COMPONENT Runtime)
|
||||
|
||||
|
||||
GET_TARGET_PROPERTY(BINARY_LOCATION MultiMC LOCATION)
|
||||
CONFIGURE_FILE(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/dependencies.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/dependencies.cmake"
|
||||
@ONLY
|
||||
)
|
||||
INSTALL(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/dependencies.cmake")
|
||||
# Dirs to look for dependencies.
|
||||
SET(DIRS ${QT_LIBRARY_DIRS})
|
||||
|
||||
INSTALL(CODE "
|
||||
file(GLOB_RECURSE QTPLUGINS
|
||||
\"\${CMAKE_INSTALL_PREFIX}/${PLUGIN_DEST_DIR}/plugins/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
|
||||
include(BundleUtilities)
|
||||
fixup_bundle(\"${APPS}\" \"\${QTPLUGINS}\" \"${DIRS}\")
|
||||
" COMPONENT Runtime)
|
||||
|
||||
|
||||
#GET_TARGET_PROPERTY(BINARY_LOCATION MultiMC LOCATION)
|
||||
#CONFIGURE_FILE(
|
||||
# "${CMAKE_CURRENT_SOURCE_DIR}/dependencies.cmake.in"
|
||||
# "${CMAKE_CURRENT_BINARY_DIR}/dependencies.cmake"
|
||||
# @ONLY
|
||||
# )
|
||||
#INSTALL(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/dependencies.cmake")
|
||||
|
||||
|
||||
################ Package ################
|
||||
|
||||
# Package with CPack
|
||||
IF(UNIX)
|
||||
@ -216,6 +299,24 @@ IF(UNIX)
|
||||
ELSEIF(WIN32)
|
||||
SET(CPACK_GENERATOR "ZIP")
|
||||
ENDIF()
|
||||
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0)
|
||||
set(CPACK_PACKAGE_FILE_NAME "MultiMC")
|
||||
SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0)
|
||||
|
||||
SET(CPACK_PACKAGE_NAME "MultiMC 5")
|
||||
SET(CPACK_PACKAGE_VENDOR "")
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MultiMC - Minecraft launcher and management tool.")
|
||||
SET(CPACK_PACKAGE_VERSION "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_REV}.${MultiMC_VERSION_BUILD}")
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR ${MultiMC_VERSION_MAJOR})
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR ${MultiMC_VERSION_MINOR})
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH ${MultiMC_VERSION_REV})
|
||||
|
||||
IF(CPACK_GENERATOR STREQUAL "NSIS")
|
||||
SET(CPACK_PACKAGE_FILE_NAME "Setup-MultiMC")
|
||||
ELSE()
|
||||
SET(CPACK_PACKAGE_FILE_NAME "MultiMC")
|
||||
ENDIF()
|
||||
|
||||
IF(WIN32)
|
||||
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "MultiMC 5")
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(CPack)
|
||||
|
BIN
MultiMC.icns
Normal file
BIN
MultiMC.icns
Normal file
Binary file not shown.
130
data/siglist.h
Normal file
130
data/siglist.h
Normal file
@ -0,0 +1,130 @@
|
||||
/* 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 SIGLIST_H
|
||||
#define SIGLIST_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QList>
|
||||
|
||||
// A QList that allows emitting signals when the list changes.
|
||||
// Since QObject doesn't support templates, to use this class with a
|
||||
// certain type, you should create a class deriving from SigList<T> and then
|
||||
// call the DEFINE_SIGLIST_SIGNALS(T) and SETUP_SIGLIST_SIGNALS(T) macros.
|
||||
template <typename T>
|
||||
class SigList : public QList<T>
|
||||
{
|
||||
|
||||
public:
|
||||
explicit SigList() : QList<T>() {}
|
||||
|
||||
virtual void append(const T &value);
|
||||
virtual void append(const QList<T> &other);
|
||||
|
||||
virtual void clear();
|
||||
|
||||
virtual void erase(iterator pos);
|
||||
virtual void erase(iterator first, iterator last);
|
||||
|
||||
virtual void insert(int i, const T &t);
|
||||
virtual void insert(iterator before, const T &t);
|
||||
|
||||
virtual void move(int from, int to);
|
||||
|
||||
virtual void pop_back() { takeLast(); }
|
||||
virtual void pop_front() { takeFirst(); }
|
||||
|
||||
virtual void push_back(const T &t) { append(t); }
|
||||
virtual void push_front(const T &t) { prepend(t); }
|
||||
|
||||
virtual void prepend(const T &t);
|
||||
|
||||
virtual int removeAll(const T &t);
|
||||
virtual bool removeOne(const T &t);
|
||||
|
||||
virtual void removeAt(int i) { takeAt(i); }
|
||||
virtual void removeFirst() { takeFirst(); }
|
||||
virtual void removeLast() { takeLast(); }
|
||||
|
||||
virtual void swap(QList<T> &other);
|
||||
virtual void swap(int i, int j);
|
||||
|
||||
virtual T takeAt(int i);
|
||||
virtual T takeFirst();
|
||||
virtual T takeLast();
|
||||
|
||||
virtual QList<T> &operator +=(const QList<T> &other) { append(other); return *this; }
|
||||
virtual QList<T> &operator +=(const T &value) { append(value); return *this; }
|
||||
virtual QList<T> &operator <<(const QList<T> &other) { append(other); return *this; }
|
||||
virtual QList<T> &operator <<(const T &value) { append(value); return *this; }
|
||||
|
||||
virtual QList<T> &operator =(const QList<T> &other);
|
||||
|
||||
|
||||
// Signal emitted after an item is added to the list.
|
||||
// Contains a reference to item and the item's new index.
|
||||
virtual void onItemAdded(const T &item, int index) = 0;
|
||||
|
||||
// Signal emitted after multiple items are added to the list at once.
|
||||
// The items parameter is a const reference to a QList of the items that
|
||||
// were added.
|
||||
// The firstIndex parameter is the new index of the first item added.
|
||||
virtual void onItemsAdded(const QList<T> &items, int firstIndex) = 0;
|
||||
|
||||
// Signal emitted after an item is removed to the list.
|
||||
// Contains a reference to the item and the item's old index.
|
||||
virtual void onItemRemoved(const T &item, int index) = 0;
|
||||
|
||||
// Signal emitted after multiple items are removed from the list at once.
|
||||
// The items parameter is a const reference to a QList of the items that
|
||||
// were added.
|
||||
// The firstIndex parameter is the new index of the first item added.
|
||||
virtual void onItemsRemoved(const QList<T> &items, int firstIndex) = 0;
|
||||
|
||||
// Signal emitted after an item is moved to another index.
|
||||
// Contains the item, the old index, and the new index.
|
||||
virtual void onItemMoved(const T &item, int oldIndex, int newIndex) = 0;
|
||||
|
||||
// Signal emitted after an operation that changes the whole list occurs.
|
||||
// This signal should be treated as if all data in the entire list was cleared
|
||||
// and new data added in its place.
|
||||
virtual void onInvalidated() = 0;
|
||||
};
|
||||
|
||||
// Defines the signals for a SigList
|
||||
#define DEFINE_SIGLIST_SIGNALS(TYPE) \
|
||||
Q_SIGNAL void itemAdded(TYPE const &item, int index);\
|
||||
Q_SIGNAL void itemsAdded(const QList<TYPE> &items, int firstIndex);\
|
||||
Q_SIGNAL void itemRemoved(TYPE const &item, int index);\
|
||||
Q_SIGNAL void itemsRemoved(const QList<TYPE> &items, int firstIndex);\
|
||||
Q_SIGNAL void itemMoved(TYPE const &item, int oldIndex, int newIndex);\
|
||||
Q_SIGNAL void invalidated();
|
||||
|
||||
// Overrides the onItem* functions and causes them to emit their corresponding
|
||||
// signals.
|
||||
#define SETUP_SIGLIST_SIGNALS(TYPE) \
|
||||
virtual void onItemAdded(TYPE const &item, int index)\
|
||||
{ emit itemAdded(item, index); }\
|
||||
virtual void onItemsAdded(const QList<TYPE> &items, int firstIndex)\
|
||||
{ emit itemsAdded(items, firstIndex); }\
|
||||
virtual void onItemRemoved(TYPE const &item, int index)\
|
||||
{ emit itemRemoved(item, index); }\
|
||||
virtual void onItemsRemoved(const QList<TYPE> &items, int firstIndex)\
|
||||
{ emit itemsRemoved(items, firstIndex); }\
|
||||
virtual void onItemMoved(TYPE const &item, int oldIndex, int newIndex)\
|
||||
{ emit itemMoved(item, oldIndex, newIndex); }\
|
||||
virtual void onInvalidated() { emit invalidated(); }
|
||||
|
||||
#endif // SIGLIST_H
|
156
data/siglist_imp.h
Normal file
156
data/siglist_imp.h
Normal file
@ -0,0 +1,156 @@
|
||||
/* 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 "siglist.h"
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::append(const T &value)
|
||||
{
|
||||
QList<T>::append(value);
|
||||
onItemAdded(value, length() - 1);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::prepend(const T &value)
|
||||
{
|
||||
QList<T>::prepend(value);
|
||||
onItemAdded(value, 0);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::append(const QList<T> &other)
|
||||
{
|
||||
int index = length();
|
||||
QList<T>::append(other);
|
||||
onItemsAdded(other, index);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::clear()
|
||||
{
|
||||
QList<T>::clear();
|
||||
onInvalidated();
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::erase(QList<T>::iterator pos)
|
||||
{
|
||||
T value = *pos;
|
||||
int index = indexOf(*pos);
|
||||
QList<T>::erase(pos);
|
||||
onItemRemoved(value, index);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::erase(QList<T>::iterator first, QList<T>::iterator last)
|
||||
{
|
||||
QList<T> removedValues;
|
||||
int firstIndex = indexOf(*first);
|
||||
|
||||
for (QList<T>::iterator iter = first; iter < last; iter++)
|
||||
{
|
||||
removedValues << *iter;
|
||||
QList<T>::erase(iter);
|
||||
}
|
||||
|
||||
onItemsRemoved(removedValues, firstIndex);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::insert(int i, const T &t)
|
||||
{
|
||||
QList<T>::insert(i, t);
|
||||
onItemAdded(t, i);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::insert(QList<T>::iterator before, const T &t)
|
||||
{
|
||||
QList<T>::insert(before, t);
|
||||
onItemAdded(t, indexOf(t));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::move(int from, int to)
|
||||
{
|
||||
const T &item = at(from);
|
||||
QList<T>::move(from, to);
|
||||
onItemMoved(item, from, to);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
int SigList<T>::removeAll(const T &t)
|
||||
{
|
||||
int retVal = QList<T>::removeAll(t);
|
||||
onInvalidated();
|
||||
return retVal;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
bool SigList<T>::removeOne(const T &t)
|
||||
{
|
||||
int index = indexOf(t);
|
||||
if (QList<T>::removeOne(t))
|
||||
{
|
||||
onItemRemoved(t, index);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::swap(QList<T> &other)
|
||||
{
|
||||
QList<T>::swap(other);
|
||||
onInvalidated();
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SigList<T>::swap(int i, int j)
|
||||
{
|
||||
const T &item1 = at(i);
|
||||
const T &item2 = at(j);
|
||||
QList<T>::swap(i, j);
|
||||
onItemMoved(item1, i, j);
|
||||
onItemMoved(item2, j, i);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
T SigList<T>::takeAt(int i)
|
||||
{
|
||||
T val = QList<T>::takeAt(i);
|
||||
onItemRemoved(val, i);
|
||||
return val;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
T SigList<T>::takeFirst()
|
||||
{
|
||||
return takeAt(0);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
T SigList<T>::takeLast()
|
||||
{
|
||||
return takeAt(length() - 1);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
QList<T> &SigList<T>::operator =(const QList<T> &other)
|
||||
{
|
||||
QList<T>::operator =(other);
|
||||
onInvalidated();
|
||||
return *this;
|
||||
}
|
@ -4,6 +4,12 @@ message(STATUS "Running install script...")
|
||||
|
||||
SET(Qt5_DIR @Qt5_DIR@)
|
||||
|
||||
IF(WIN32)
|
||||
SET(LIB_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||
ELSE()
|
||||
SET(LIB_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(GetPrerequisites)
|
||||
GET_PREREQUISITES(@BINARY_LOCATION@ MULTIMC_PREREQS 1 1 "" "")
|
||||
|
||||
@ -11,13 +17,15 @@ message(STATUS "Prerequisites: ${MULTIMC_PREREQS}")
|
||||
|
||||
FOREACH(PREREQ ${MULTIMC_PREREQS})
|
||||
GET_FILENAME_COMPONENT(PREREQ_NAME "${PREREQ}" NAME)
|
||||
GET_FILENAME_COMPONENT(_PREREQ_ACTUAL "${PREREQ}" REALPATH)
|
||||
GET_FILENAME_COMPONENT(PREREQ_ACTUAL "${PREREQ}" REALPATH)
|
||||
IF(WIN32)
|
||||
SET(PREREQ_ACTUAL "${Qt5_DIR}/bin/${PREREQ}")
|
||||
ENDIF()
|
||||
|
||||
message(STATUS "Adding install prerequisite: ${PREREQ_NAME}")
|
||||
|
||||
FILE(INSTALL
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}"
|
||||
DESTINATION "${LIB_INSTALL_PREFIX}"
|
||||
TYPE PROGRAM
|
||||
RENAME "${PREREQ_NAME}"
|
||||
FILES "${PREREQ_ACTUAL}"
|
||||
|
9
package/linux/MultiMC
Executable file
9
package/linux/MultiMC
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
# Basic start script for running MultiMC with the libs packaged with it.
|
||||
|
||||
MMC_DIR=$(dirname "$0")
|
||||
cd "${MMC_DIR}"
|
||||
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"./lib"
|
||||
export QT_PLUGIN_PATH=$QT_PLUGIN_PATH:"."
|
||||
exec ./bin/MultiMC
|
Loading…
Reference in New Issue
Block a user