From eb3e093998df52f11d07589e1baff7b25c5f23a7 Mon Sep 17 00:00:00 2001 From: Tanishq Dubey Date: Sun, 16 Jun 2024 10:23:53 -0400 Subject: [PATCH] switch to cmake --- .gitignore | 15 +++++++++ CMakeLists.txt | 69 +++++++++++++++++++++----------------- Makefile | 91 -------------------------------------------------- 3 files changed, 53 insertions(+), 122 deletions(-) delete mode 100644 Makefile diff --git a/.gitignore b/.gitignore index 0f3c454..a6efe49 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,18 @@ imgui.ini tview + +#CMake +CMakeLists.txt.user +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +Makefile +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +_deps +CMakeUserPresets.json + diff --git a/CMakeLists.txt b/CMakeLists.txt index bcfae93..9ce4a22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,38 +6,45 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) project(tview) set (SOURCES -/lib/backends/imgui_impl_opengl3.cpp -/lib/backends/imgui_impl_opengl3.h -/lib/backends/imgui_impl_opengl3_loader.h -/lib/backends/imgui_impl_sdl2.cpp -/lib/backends/imgui_impl_sdl2.h -/lib/backends/tex_inspect_opengl.h -/lib/backends/tex_inspect_opengl.cpp -/lib/context_wrapper.h -/lib/image_model.h -/lib/imconfig.h -/lib/imfilebrowser.h -/lib/imgui.cpp -/lib/imgui.h -/lib/imgui_bezier_math.h -/lib/imgui_bezier_math.inl -/lib/imgui_demo.cpp -/lib/imgui_draw.cpp -/lib/imgui_extra_math.h -/lib/imgui_extra_math.inl -/lib/imgui_internal.h -/lib/imgui_tables.cpp -/lib/imgui_widgets.cpp -/lib/imstb_rectpack.h -/lib/imstb_textedit.h -/lib/imstb_truetype.h -/lib/stb_image.h -/lib/imgui_tex_inspect.h -/lib/imgui_tex_inspect_internal.h -/lib/imgui_tex_inspect.cpp -/lib/argparse.hpp -/lib/histogram.h +lib/backends/imgui_impl_opengl3.cpp +lib/backends/imgui_impl_opengl3.h +lib/backends/imgui_impl_opengl3_loader.h +lib/backends/imgui_impl_sdl2.cpp +lib/backends/imgui_impl_sdl2.h +lib/backends/tex_inspect_opengl.h +lib/backends/tex_inspect_opengl.cpp +lib/context_wrapper.h +lib/image_model.h +lib/imconfig.h +lib/imfilebrowser.h +lib/imgui.cpp +lib/imgui.h +lib/imgui_bezier_math.h +lib/imgui_bezier_math.inl +lib/imgui_demo.cpp +lib/imgui_draw.cpp +lib/imgui_extra_math.h +lib/imgui_extra_math.inl +lib/imgui_internal.h +lib/imgui_tables.cpp +lib/imgui_widgets.cpp +lib/imstb_rectpack.h +lib/imstb_textedit.h +lib/imstb_truetype.h +lib/stb_image.h +lib/imgui_tex_inspect.h +lib/imgui_tex_inspect_internal.h +lib/imgui_tex_inspect.cpp +lib/argparse.hpp +lib/histogram.h main.cpp ) +set(OpenGL_GL_PREFERENCE GLVND) +find_package(SDL2 REQUIRED) +find_package(OpenGL REQUIRED) +find_package(exiv2 REQUIRED) +include_directories(${SDL2_INCLUDE_DIRS} ${OPENGL_INCLUDE_DIRS}) + add_executable(tview ${SOURCES}) +target_link_libraries(tview ${SDL2_LIBRARIES} ${OPENGL_LIBRARIES} exiv2lib) diff --git a/Makefile b/Makefile deleted file mode 100644 index b53f171..0000000 --- a/Makefile +++ /dev/null @@ -1,91 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need SDL2 (http://www.libsdl.org): -# Linux: -# apt-get install libsdl2-dev -# Mac OS X: -# brew install sdl2 -# MSYS2: -# pacman -S mingw-w64-i686-SDL2 -# - -#CXX = g++ -#CXX = clang++ - -EXE = tview -IMGUI_DIR = lib -SOURCES = main.cpp -SOURCES += $(wildcard $(IMGUI_DIR)/*.cpp) -SOURCES += $(wildcard $(IMGUI_DIR)/backends/*.cpp) -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) -LINUX_GL_LIBS = -lGL - -CXXFLAGS = -std=c++20 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -DIMGUI_DEFINE_MATH_OPERATORS -O3 -DGL_SILENCE_DEPRECATION -LIBS = -lexiv2 - -##--------------------------------------------------------------------- -## OPENGL ES -##--------------------------------------------------------------------- - -## This assumes a GL ES library available in the system, e.g. libGLESv2.so -# CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2 -# LINUX_GL_LIBS = -lGLESv2 -## If you're on a Raspberry Pi and want to use the legacy drivers, -## use the following instead: -# LINUX_GL_LIBS = -L/opt/vc/lib -lbrcmGLESv2 - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += $(LINUX_GL_LIBS) -ldl -L/usr/lib -lSDL2 - - CXXFLAGS += -I/usr/include/SDL2 -D_REENTRANT - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs` - LIBS += -L/usr/local/lib -L/opt/local/lib - - CXXFLAGS += `sdl2-config --cflags` - CXXFLAGS += -I/usr/local/include -I/opt/local/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2` - - CXXFLAGS += `pkg-config --cflags sdl2` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS)