Actualitzat make i cmake
This commit is contained in:
@@ -13,6 +13,9 @@ endif()
|
|||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||||
|
|
||||||
|
# Configuración global de flags de compilación
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Os -ffunction-sections -fdata-sections")
|
||||||
|
|
||||||
# Define el directorio de los archivos fuente
|
# Define el directorio de los archivos fuente
|
||||||
set(DIR_SOURCES "${CMAKE_SOURCE_DIR}/source")
|
set(DIR_SOURCES "${CMAKE_SOURCE_DIR}/source")
|
||||||
|
|
||||||
@@ -26,18 +29,27 @@ endif()
|
|||||||
|
|
||||||
# Configuración de SDL2
|
# Configuración de SDL2
|
||||||
find_package(SDL2 REQUIRED)
|
find_package(SDL2 REQUIRED)
|
||||||
include_directories(${SDL2_INCLUDE_DIRS})
|
if(SDL2_FOUND)
|
||||||
link_directories(${SDL2_LIBDIR})
|
message(STATUS "SDL2 encontrado: ${SDL2_INCLUDE_DIRS}")
|
||||||
|
include_directories(${SDL2_INCLUDE_DIRS})
|
||||||
|
link_directories(${SDL2_LIBDIR})
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "SDL2 no encontrado")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Incluye rutas de SDL2 obtenidas con pkg-config
|
||||||
|
include_directories(/usr/local/include /usr/local/include/SDL2)
|
||||||
|
link_directories(/usr/local/lib)
|
||||||
|
|
||||||
# Definir las bibliotecas comunes
|
# Definir las bibliotecas comunes
|
||||||
set(LIBS SDL2main SDL2)
|
set(LIBS SDL2)
|
||||||
|
|
||||||
# Configuración común de salida de ejecutables en el directorio raíz
|
# Configuración común de salida de ejecutables en el directorio raíz
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||||
|
|
||||||
# Objetivos específicos por plataforma
|
# Objetivos específicos por plataforma
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(LIBS ${LIBS} mingw32 opengl32 gdi32 winmm imm32 ole32 version)
|
set(LIBS ${LIBS} SDL2main mingw32 opengl32 gdi32 winmm imm32 ole32 version)
|
||||||
|
|
||||||
# Windows estándar
|
# Windows estándar
|
||||||
add_executable(${PROJECT_NAME}_windows ${SOURCES})
|
add_executable(${PROJECT_NAME}_windows ${SOURCES})
|
||||||
@@ -60,6 +72,9 @@ if(WIN32)
|
|||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(LIBS ${LIBS} "-framework OpenGL")
|
set(LIBS ${LIBS} "-framework OpenGL")
|
||||||
|
|
||||||
|
# Añadir la flag de compilación para desactivar advertencias de obsolescencia
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated")
|
||||||
|
|
||||||
# macOS estándar
|
# macOS estándar
|
||||||
add_executable(${PROJECT_NAME}_macos ${SOURCES})
|
add_executable(${PROJECT_NAME}_macos ${SOURCES})
|
||||||
target_compile_definitions(${PROJECT_NAME}_macos PRIVATE MACOS_BUILD)
|
target_compile_definitions(${PROJECT_NAME}_macos PRIVATE MACOS_BUILD)
|
||||||
|
|||||||
91
Makefile
91
Makefile
@@ -50,84 +50,7 @@ else
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
OBJECTS := $(subst $(DIR_SOURCES), $(DIR_BUILD), $(SOURCES))
|
# Rules
|
||||||
OBJECTS := $(OBJECTS:.cpp=.o)
|
|
||||||
DEPENDENCIES:= $(OBJECTS:.o=.d)
|
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# #
|
|
||||||
# RULES #
|
|
||||||
# #
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
.PHONY: all a1
|
|
||||||
|
|
||||||
all: a1
|
|
||||||
|
|
||||||
a1: $(TARGET_FILE)
|
|
||||||
|
|
||||||
$(TARGET_FILE): $(OBJECTS)
|
|
||||||
$(MKD) $(@D)
|
|
||||||
$(CXX) $(OBJECTS) $(LDFLAGS) -o $(TARGET_FILE)
|
|
||||||
|
|
||||||
$(DIR_BUILD)%.o: $(DIR_SOURCES)%.cpp
|
|
||||||
$(MKD) $(@D)
|
|
||||||
$(CXX) -c $< $(CXXFLAGS) $(INCLUDES) -o $@
|
|
||||||
|
|
||||||
-include $(DEPENDENCIES)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# #
|
|
||||||
# CLEAN #
|
|
||||||
# #
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(RM) $(call FixPath,$(DIR_BUILD))
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# #
|
|
||||||
# PRINT-VARIABLES #
|
|
||||||
# #
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
.PHONY: print-variables
|
|
||||||
|
|
||||||
print-variables:
|
|
||||||
@echo MAKEFILE_LIST: $(MAKEFILE_LIST)
|
|
||||||
|
|
||||||
@echo "DIR_ROOT :" $(DIR_ROOT)
|
|
||||||
@echo "DIR_SOURCES:" $(DIR_SOURCES)
|
|
||||||
@echo "DIR_BIN :" $(DIR_BIN)
|
|
||||||
@echo "DIR_BUILD :" $(DIR_BUILD)
|
|
||||||
|
|
||||||
@echo "DIR_IMGUI :" $(DIR_IMGUI)
|
|
||||||
@echo "DIR_IMGUI_SFML:" $(DIR_IMGUI_SFML)
|
|
||||||
@echo "INCLUDES :" $(INCLUDES)
|
|
||||||
|
|
||||||
@echo CXX: $(CXX)
|
|
||||||
@echo CXXFLAGS: $(CXXFLAGS)
|
|
||||||
@echo LDFLAGS: $(LDFLAGS)
|
|
||||||
|
|
||||||
@echo SOURCES: $(SOURCES)
|
|
||||||
@echo OBJECTS: $(OBJECTS)
|
|
||||||
@echo DEPENDENCIES: $(DEPENDENCIES)
|
|
||||||
|
|
||||||
@echo TARGET_NAME: $(TARGET_NAME)
|
|
||||||
@echo TARGET_FILE: $(TARGET_FILE)
|
|
||||||
|
|
||||||
@echo RM: $(RM)
|
|
||||||
|
|
||||||
raspi:
|
|
||||||
$(CXX) $(SOURCES) -D ARCADE -D VERBOSE $(CXXFLAGS) $(LDFLAGS) -o $(TARGET_FILE)
|
|
||||||
strip -s -R .comment -R .gnu.version $(TARGET_FILE) --strip-unneeded
|
|
||||||
|
|
||||||
raspi_debug:
|
|
||||||
$(CXX) $(SOURCES) -D ARCADE -D VERBOSE -D DEBUG $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(TARGET_FILE)_debug"
|
|
||||||
|
|
||||||
windows:
|
windows:
|
||||||
@echo off
|
@echo off
|
||||||
$(CXX) $(SOURCES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE).exe"
|
$(CXX) $(SOURCES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE).exe"
|
||||||
@@ -249,6 +172,13 @@ linux_release:
|
|||||||
# Elimina la carpeta temporal
|
# Elimina la carpeta temporal
|
||||||
$(RM) "$(RELEASE_FOLDER)"
|
$(RM) "$(RELEASE_FOLDER)"
|
||||||
|
|
||||||
|
raspi:
|
||||||
|
$(CXX) $(SOURCES) -D ARCADE -D VERBOSE $(CXXFLAGS) $(LDFLAGS) -o $(TARGET_FILE)
|
||||||
|
strip -s -R .comment -R .gnu.version $(TARGET_FILE) --strip-unneeded
|
||||||
|
|
||||||
|
raspi_debug:
|
||||||
|
$(CXX) $(SOURCES) -D ARCADE -D VERBOSE -D DEBUG $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(TARGET_FILE)_debug"
|
||||||
|
|
||||||
anbernic:
|
anbernic:
|
||||||
# Elimina carpetas previas
|
# Elimina carpetas previas
|
||||||
$(RM) "$(RELEASE_FOLDER)"_anbernic
|
$(RM) "$(RELEASE_FOLDER)"_anbernic
|
||||||
@@ -259,6 +189,5 @@ anbernic:
|
|||||||
# Copia ficheros
|
# Copia ficheros
|
||||||
cp -R data "$(RELEASE_FOLDER)"_anbernic
|
cp -R data "$(RELEASE_FOLDER)"_anbernic
|
||||||
|
|
||||||
# Complia
|
# Compila
|
||||||
$(CXX) $(SOURCES) -D ANBERNIC -D NO_SHADERS -D ARCADE -D VERBOSE $(CXXFLAGS) $(LDFLAGS) -o $(RELEASE_FOLDER)_anbernic/$(TARGET_NAME)
|
$(CXX) $(SOURCES) -D ANBERNIC -D NO_SHADERS -D ARCADE -D VERBOSE $(CXXFLAGS) $(LDFLAGS) -o $(RELEASE_FOLDER)_anbernic/$(TARGET_NAME)
|
||||||
$(CXX) $(SOURCES) -D ANBERNIC -D ARCADE -D VERBOSE $(CXXFLAGS) $(LDFLAGS) -o $(RELEASE_FOLDER)_anbernic/$(TARGET_NAME).shaders
|
|
||||||
Reference in New Issue
Block a user