aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2020-05-28 23:17:50 +0200
committerPetr Mrázek <peterix@gmail.com>2020-05-28 23:17:50 +0200
commitba6a97557a0d90d77e9eba560931414e39042447 (patch)
tree917bc84eb7eb8b9bb34cb891d0a670774acd335b
parente7f79c90764e03b3ba41af8352bdd167cd1db2b2 (diff)
downloadPrismLauncher-ba6a97557a0d90d77e9eba560931414e39042447.tar.gz
PrismLauncher-ba6a97557a0d90d77e9eba560931414e39042447.tar.bz2
PrismLauncher-ba6a97557a0d90d77e9eba560931414e39042447.zip
NOISSUE prevent evil from winning
-rw-r--r--CMakeLists.txt11
-rw-r--r--application/MultiMC.cpp22
2 files changed, 32 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 747ec5c8..11b6b63f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,15 @@ cmake_minimum_required(VERSION 3.1)
string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BUILD_DIR}" IS_IN_SOURCE_BUILD)
if(IS_IN_SOURCE_BUILD)
- message(AUTHOR_WARNING "You are building MultiMC in-source. This is NOT recommended!")
+ message(FATAL_ERROR "You are building MultiMC in-source. Please separate the build tree from the source tree.")
+endif()
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ if(CMAKE_HOST_SYSTEM_VERSION MATCHES ".*[Mm]icrosoft.*" OR
+ CMAKE_HOST_SYSTEM_VERSION MATCHES ".*WSL.*"
+ )
+ message(FATAL_ERROR "This is not a supported environment for any purpose and should never be used.")
+ endif()
endif()
if(WIN32)
@@ -13,6 +21,7 @@ endif()
project(MultiMC)
enable_testing()
+
##################################### Set CMake options #####################################
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
diff --git a/application/MultiMC.cpp b/application/MultiMC.cpp
index 393ea046..6ab3ad26 100644
--- a/application/MultiMC.cpp
+++ b/application/MultiMC.cpp
@@ -146,6 +146,28 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
startTime = QDateTime::currentDateTime();
+#ifdef Q_OS_LINUX
+ {
+ QFile osrelease("/proc/sys/kernel/osrelease");
+ if (osrelease.open(QFile::ReadOnly | QFile::Text)) {
+ QTextStream in(&osrelease);
+ auto contents = in.readAll();
+ if(
+ contents.contains("WSL", Qt::CaseInsensitive) ||
+ contents.contains("Microsoft", Qt::CaseInsensitive) ||
+ true
+ ) {
+ showFatalErrorMessage(
+ "Unsupported system detected!",
+ "It seems you are supporting the exploitation of Free Software.\n\n"
+ "You smell bad and you should feel bad."
+ );
+ return;
+ }
+ }
+ }
+#endif
+
// Don't quit on hiding the last window
this->setQuitOnLastWindowClosed(false);