WIP clang makefile (doesn't link)
This commit is contained in:
parent
e87fad18db
commit
0fc558acb6
31
makefile
31
makefile
@ -1,19 +1,32 @@
|
|||||||
|
ifndef CLANG
|
||||||
CXX=$(shell sh -c "which g++-6 || which g++")
|
CXX=$(shell sh -c "which g++-6 || which g++")
|
||||||
CC=$(shell sh -c "which gcc-6 || which gcc")
|
CC=$(shell sh -c "which gcc-6 || which gcc")
|
||||||
|
LD=$(CXX)
|
||||||
|
else
|
||||||
|
CXX=clang++
|
||||||
|
CC=clang
|
||||||
|
LD=ld.lld
|
||||||
|
endif
|
||||||
|
|
||||||
DEFINES=_GLIBCXX_USE_CXX11_ABI=0 _POSIX=1 FREETYPE_GL_USE_VAO RAD_TELEMETRY_DISABLED LINUX=1 USE_SDL _LINUX=1 POSIX=1 GNUC=1 NO_MALLOC_OVERRIDE
|
DEFINES=_GLIBCXX_USE_CXX11_ABI=0 _POSIX=1 FREETYPE_GL_USE_VAO RAD_TELEMETRY_DISABLED LINUX=1 USE_SDL _LINUX=1 POSIX=1 GNUC=1 NO_MALLOC_OVERRIDE
|
||||||
|
|
||||||
WARNING_FLAGS=-pedantic -Wall -Wextra -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-declarations -Wmissing-include-dirs -Wnoexcept -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 -Wswitch-default -Wundef
|
WARNING_FLAGS=-pedantic -Wall -Wextra -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-declarations -Wmissing-include-dirs -Wnoexcept -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 -Wswitch-default -Wundef
|
||||||
COMMON_FLAGS=-fpermissive -O3 -shared -Wno-unknown-pragmas -fmessage-length=0 -m32 -fvisibility=hidden -fPIC -march=native
|
COMMON_FLAGS=-fpermissive -O3 -shared -Wno-unknown-pragmas -fmessage-length=0 -m32 -fvisibility=hidden -fPIC -march=native -mtune=native
|
||||||
|
|
||||||
|
ifdef CLANG
|
||||||
|
COMMON_FLAGS+=-Wno-c++11-narrowing
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef BUILD_DEBUG
|
ifdef BUILD_DEBUG
|
||||||
COMMON_FLAGS+=-g3 -ggdb
|
COMMON_FLAGS+=-g3 -ggdb
|
||||||
else
|
else
|
||||||
|
ifndef CLANG
|
||||||
COMMON_FLAGS+=-flto
|
COMMON_FLAGS+=-flto
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CFLAGS=$(COMMON_FLAGS)
|
CFLAGS=$(COMMON_FLAGS)
|
||||||
CXXFLAGS=-std=gnu++1z $(COMMON_FLAGS)
|
CXXFLAGS=-std=gnu++14 $(COMMON_FLAGS)
|
||||||
|
|
||||||
ifndef NO_WARNINGS
|
ifndef NO_WARNINGS
|
||||||
CFLAGS+=$(WARNING_FLAGS)
|
CFLAGS+=$(WARNING_FLAGS)
|
||||||
@ -27,11 +40,19 @@ SDKFOLDER=$(realpath source-sdk-2013/mp/src)
|
|||||||
SIMPLE_IPC_DIR = $(realpath simple-ipc/src/include)
|
SIMPLE_IPC_DIR = $(realpath simple-ipc/src/include)
|
||||||
INCLUDES=-Iucccccp -isystemsrc/freetype-gl -isystemsrc/imgui -isystem/usr/local/include/freetype2 -isystem/usr/include/freetype2 -I$(SIMPLE_IPC_DIR) -isystem$(SDKFOLDER)/public -isystem$(SDKFOLDER)/mathlib -isystem$(SDKFOLDER)/common -isystem$(SDKFOLDER)/public/tier1 -isystem$(SDKFOLDER)/public/tier0 -isystem$(SDKFOLDER)
|
INCLUDES=-Iucccccp -isystemsrc/freetype-gl -isystemsrc/imgui -isystem/usr/local/include/freetype2 -isystem/usr/include/freetype2 -I$(SIMPLE_IPC_DIR) -isystem$(SDKFOLDER)/public -isystem$(SDKFOLDER)/mathlib -isystem$(SDKFOLDER)/common -isystem$(SDKFOLDER)/public/tier1 -isystem$(SDKFOLDER)/public/tier0 -isystem$(SDKFOLDER)
|
||||||
LIB_DIR=lib
|
LIB_DIR=lib
|
||||||
LDFLAGS=-m32 -fno-gnu-unique -D_GLIBCXX_USE_CXX11_ABI=0 -shared -L$(realpath $(LIB_DIR))
|
LDFLAGS=-shared -L$(realpath $(LIB_DIR))
|
||||||
|
ifdef CLANG
|
||||||
|
LDFLAGS+=-melf_i386
|
||||||
|
else
|
||||||
|
LDFLAGS+=-m32 -fno-gnu-unique
|
||||||
|
endif
|
||||||
|
|
||||||
ifndef BUILD_DEBUG
|
ifndef BUILD_DEBUG
|
||||||
|
ifndef CLANG
|
||||||
LDFLAGS+=-flto
|
LDFLAGS+=-flto
|
||||||
endif
|
endif
|
||||||
LDLIBS=-static -lc -lstdc++ -ltier0 -lvstdlib -l:libSDL2-2.0.so.0 -static -lGLEW -lfreetype -lpthread
|
endif
|
||||||
|
LDLIBS=-l:libSDL2-2.0.so.0 -static -l:libc.so.6 -static -l:libstdc++.so.6 -l:libtier0.so -l:libvstdlib.so -static -l:libGLEW.so -l:libfreetype.so
|
||||||
SRC_DIR = src
|
SRC_DIR = src
|
||||||
RES_DIR = res
|
RES_DIR = res
|
||||||
OUT_NAME = libcathook.so
|
OUT_NAME = libcathook.so
|
||||||
@ -126,7 +147,7 @@ src/sdk/utlbuffer.o : CFLAGS+=-w
|
|||||||
|
|
||||||
$(TARGET): $(OBJECTS)
|
$(TARGET): $(OBJECTS)
|
||||||
@echo Building cathook
|
@echo Building cathook
|
||||||
@$(CXX) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $(TARGET)
|
$(LD) -o $(TARGET) $(LDFLAGS) $(OBJECTS) $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
find src -type f -name '*.o' -delete
|
find src -type f -name '*.o' -delete
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
#include "Schema.hpp"
|
#include "Schema.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
#include "../../helpers.h"
|
||||||
#include "../../cvwrapper.h"
|
#include "../../cvwrapper.h"
|
||||||
#include "../../logging.h"
|
#include "../../logging.h"
|
||||||
|
|
||||||
@ -23,13 +25,12 @@ CatVar* FindCatVar(const std::string name) {
|
|||||||
ListEntry_Dummy* FromJson(nlohmann::json json) {
|
ListEntry_Dummy* FromJson(nlohmann::json json) {
|
||||||
if (json.is_string()) {
|
if (json.is_string()) {
|
||||||
const std::string var_name = json;
|
const std::string var_name = json;
|
||||||
logging::Info("[Debug] Variable: %s", var_name.c_str());
|
|
||||||
ListEntry_Dummy* cv;
|
ListEntry_Dummy* cv;
|
||||||
try {
|
try {
|
||||||
cv = (ListEntry_Dummy*)(new ListEntry_Variable(*FindCatVar(var_name)));
|
cv = (ListEntry_Dummy*)(new ListEntry_Variable(*FindCatVar(var_name)));
|
||||||
} catch (std::runtime_error& er) {
|
} catch (std::runtime_error& er) {
|
||||||
logging::Info("[Error] %s", er.what());
|
logging::Info("[Error] %s", er.what());
|
||||||
cv = (ListEntry_Dummy*)(new ListEntry_Label("malformed object"));
|
cv = (ListEntry_Dummy*)(new ListEntry_Label(format("[", var_name, "]")));
|
||||||
}
|
}
|
||||||
return cv;
|
return cv;
|
||||||
} else if (json.is_object()) {
|
} else if (json.is_object()) {
|
||||||
@ -129,7 +130,7 @@ CatCommand reloadscheme("reloadscheme", "Reload Scheme", []() {
|
|||||||
}
|
}
|
||||||
for (const auto& v : CatVarList()) {
|
for (const auto& v : CatVarList()) {
|
||||||
if (map_present.find(v) == map_present.end()) {
|
if (map_present.find(v) == map_present.end()) {
|
||||||
logging::Info("%s is not in any list!", v->name.c_str());
|
logging::Info("%s is not present in the GUI!", v->name.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TraverseList(&main_list);
|
//TraverseList(&main_list);
|
||||||
|
@ -12,7 +12,7 @@ namespace hacks { namespace shared { namespace lagexploit {
|
|||||||
CatVar toggle(CV_SWITCH, "removecond_toggle", "0", "Toggle Lag Exploit", "Toggle lag exploit (RemoveCond)");
|
CatVar toggle(CV_SWITCH, "removecond_toggle", "0", "Toggle Lag Exploit", "Toggle lag exploit (RemoveCond)");
|
||||||
CatVar key(CV_KEY, "removecond_key", "0", "RemoveCond Key");
|
CatVar key(CV_KEY, "removecond_key", "0", "RemoveCond Key");
|
||||||
CatVar lagMasterSwitch(CV_SWITCH, "removecond_master", "1", "Master Lag Exploit Switch", "Master switch for the lag exploit\nDisabling this disables everything else that uses remove conds");
|
CatVar lagMasterSwitch(CV_SWITCH, "removecond_master", "1", "Master Lag Exploit Switch", "Master switch for the lag exploit\nDisabling this disables everything else that uses remove conds");
|
||||||
CatVar lagValue(CV_INT, "removecond_value", "450", "RemoveCond Value", "Value of user cmds to spam with");
|
CatVar lagValue(CV_INT, "removecond_value", "900", "RemoveCond Value", "Value of user cmds to spam with");
|
||||||
|
|
||||||
CatCommand do_lagexploit("removecond", "RemoveCond (for use in scripts)", []() {
|
CatCommand do_lagexploit("removecond", "RemoveCond (for use in scripts)", []() {
|
||||||
AddExploitTicks(6);
|
AddExploitTicks(6);
|
||||||
|
Reference in New Issue
Block a user