aaara si, makes, cmakes i gitignores com toca
This commit is contained in:
109
.gitignore
vendored
109
.gitignore
vendored
@@ -1,4 +1,107 @@
|
|||||||
*.exe
|
demo4_sprites
|
||||||
*.dll
|
|
||||||
*.out
|
|
||||||
build/
|
build/
|
||||||
|
|
||||||
|
# ---> C++
|
||||||
|
# Prerequisites
|
||||||
|
*.d
|
||||||
|
|
||||||
|
# Compiled Object files
|
||||||
|
*.slo
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.obj
|
||||||
|
|
||||||
|
# Precompiled Headers
|
||||||
|
*.gch
|
||||||
|
*.pch
|
||||||
|
|
||||||
|
# Compiled Dynamic libraries
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
*.dll
|
||||||
|
|
||||||
|
# Fortran module files
|
||||||
|
*.mod
|
||||||
|
*.smod
|
||||||
|
|
||||||
|
# Compiled Static libraries
|
||||||
|
*.lai
|
||||||
|
*.la
|
||||||
|
*.a
|
||||||
|
*.lib
|
||||||
|
|
||||||
|
# Executables
|
||||||
|
*.exe
|
||||||
|
*.out
|
||||||
|
*.app
|
||||||
|
|
||||||
|
# ---> macOS
|
||||||
|
# General
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Icon must end with two \r
|
||||||
|
Icon
|
||||||
|
|
||||||
|
|
||||||
|
# Thumbnails
|
||||||
|
._*
|
||||||
|
|
||||||
|
# Files that might appear in the root of a volume
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
|
.VolumeIcon.icns
|
||||||
|
.com.apple.timemachine.donotpresent
|
||||||
|
|
||||||
|
# Directories potentially created on remote AFP share
|
||||||
|
.AppleDB
|
||||||
|
.AppleDesktop
|
||||||
|
Network Trash Folder
|
||||||
|
Temporary Items
|
||||||
|
.apdisk
|
||||||
|
|
||||||
|
# ---> Windows
|
||||||
|
# Windows thumbnail cache files
|
||||||
|
Thumbs.db
|
||||||
|
Thumbs.db:encryptable
|
||||||
|
ehthumbs.db
|
||||||
|
ehthumbs_vista.db
|
||||||
|
|
||||||
|
# Dump file
|
||||||
|
*.stackdump
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
[Dd]esktop.ini
|
||||||
|
|
||||||
|
# Recycle Bin used on file shares
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# Windows Installer files
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msix
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
|
||||||
|
# Windows shortcuts
|
||||||
|
*.lnk
|
||||||
|
|
||||||
|
# ---> Linux
|
||||||
|
*~
|
||||||
|
|
||||||
|
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||||
|
.fuse_hidden*
|
||||||
|
|
||||||
|
# KDE directory preferences
|
||||||
|
.directory
|
||||||
|
|
||||||
|
# Linux trash folder which might appear on any partition or disk
|
||||||
|
.Trash-*
|
||||||
|
|
||||||
|
# .nfs files are created when an open file is removed but is still being accessed
|
||||||
|
.nfs*
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ set(CMAKE_CXX_STANDARD 20)
|
|||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
# Opciones comunes de compilación
|
# Opciones comunes de compilación
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Os")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Os -ffunction-sections -fdata-sections")
|
||||||
|
|
||||||
# Buscar SDL3 automáticamente
|
# Buscar SDL3 automáticamente
|
||||||
find_package(SDL3 REQUIRED)
|
find_package(SDL3 REQUIRED)
|
||||||
@@ -24,32 +24,26 @@ if(NOT SOURCE_FILES)
|
|||||||
message(FATAL_ERROR "No se encontraron archivos fuente en el directorio 'source/'. Verifica la ruta.")
|
message(FATAL_ERROR "No se encontraron archivos fuente en el directorio 'source/'. Verifica la ruta.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Nombre del ejecutable
|
|
||||||
set(EXECUTABLE_NAME demo4_sprites)
|
|
||||||
|
|
||||||
# Detectar la plataforma y configuraciones específicas
|
# Detectar la plataforma y configuraciones específicas
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(PLATFORM windows)
|
set(PLATFORM windows)
|
||||||
set(LINK_LIBS ${SDL3_LIBRARIES} mingw32 ws2_32)
|
set(LINK_LIBS ${SDL3_LIBRARIES} mingw32 ws2_32)
|
||||||
set(EXECUTABLE_EXTENSION ".exe")
|
|
||||||
elseif(UNIX AND NOT APPLE)
|
elseif(UNIX AND NOT APPLE)
|
||||||
set(PLATFORM linux)
|
set(PLATFORM linux)
|
||||||
set(LINK_LIBS ${SDL3_LIBRARIES})
|
set(LINK_LIBS ${SDL3_LIBRARIES})
|
||||||
set(EXECUTABLE_EXTENSION ".out")
|
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(PLATFORM macos)
|
set(PLATFORM macos)
|
||||||
set(LINK_LIBS ${SDL3_LIBRARIES})
|
set(LINK_LIBS ${SDL3_LIBRARIES})
|
||||||
set(EXECUTABLE_EXTENSION ".out")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Incluir directorios de SDL3
|
# Incluir directorios de SDL3
|
||||||
include_directories(${SDL3_INCLUDE_DIRS})
|
include_directories(${SDL3_INCLUDE_DIRS})
|
||||||
|
|
||||||
# Añadir el ejecutable
|
# Añadir el ejecutable reutilizando el nombre del proyecto
|
||||||
add_executable(${EXECUTABLE_NAME}${EXECUTABLE_EXTENSION} ${SOURCE_FILES})
|
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
|
||||||
|
|
||||||
# Especificar la ubicación del ejecutable (en la raíz del proyecto)
|
# Especificar la ubicación del ejecutable (en la raíz del proyecto)
|
||||||
set_target_properties(${EXECUTABLE_NAME}${EXECUTABLE_EXTENSION} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
|
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||||
|
|
||||||
# Enlazar las bibliotecas necesarias
|
# Enlazar las bibliotecas necesarias
|
||||||
target_link_libraries(${EXECUTABLE_NAME}${EXECUTABLE_EXTENSION} ${LINK_LIBS})
|
target_link_libraries(${PROJECT_NAME} ${LINK_LIBS})
|
||||||
|
|||||||
14
Makefile
14
Makefile
@@ -1,13 +1,13 @@
|
|||||||
# Variables comunes
|
# Variables comunes
|
||||||
source := source/*.cpp
|
SOURCE := source/*.cpp
|
||||||
executable_name := demo4_sprites
|
EXECUTABLE_NAME := demo4_sprites
|
||||||
CXXFLAGS := -std=c++20 -Wall -Os # Opciones comunes de compilación
|
CXXFLAGS := -std=c++20 -Wall -Os -ffunction-sections -fdata-sections # Opciones comunes de compilación
|
||||||
LDFLAGS := -lSDL2 # Flags de enlace comunes
|
LDFLAGS := -lSDL3 # Flags de enlace comunes
|
||||||
OUTPUT_EXT :=
|
OUTPUT_EXT :=
|
||||||
|
|
||||||
# Detectar plataforma y configurar
|
# Detectar plataforma y configurar
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
LDFLAGS += -lmingw32 -lws2_32 -lSDL2main
|
LDFLAGS += -lmingw32 -lws2_32
|
||||||
OUTPUT_EXT := .exe
|
OUTPUT_EXT := .exe
|
||||||
else
|
else
|
||||||
OUTPUT_EXT := .out
|
OUTPUT_EXT := .out
|
||||||
@@ -15,8 +15,8 @@ endif
|
|||||||
|
|
||||||
# Regla principal: compilar el ejecutable
|
# Regla principal: compilar el ejecutable
|
||||||
all:
|
all:
|
||||||
$(CXX) $(source) $(CXXFLAGS) $(LDFLAGS) -o $(executable_name)$(OUTPUT_EXT)
|
$(CXX) $(SOURCE) $(CXXFLAGS) $(LDFLAGS) -o $(EXECUTABLE_NAME)$(OUTPUT_EXT)
|
||||||
|
|
||||||
# Regla para limpiar archivos generados
|
# Regla para limpiar archivos generados
|
||||||
clean:
|
clean:
|
||||||
rm -f $(executable_name)$(OUTPUT_EXT)
|
rm -f $(EXECUTABLE_NAME)$(OUTPUT_EXT)
|
||||||
Reference in New Issue
Block a user