From e445a0b2184d4f1e2bb21e59cd5f5a4063dbe867 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Tue, 5 Nov 2024 13:13:43 +0100 Subject: [PATCH] CMakeLists.txt crea el executable en la arrel del projecte --- CMakeLists.txt | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 392b214..3e002b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,5 @@ +# CMakeLists.txt completo (incluyendo configuraciones anteriores) + cmake_minimum_required(VERSION 3.10) project(coffee_crisis_arcade_edition VERSION 0.01) @@ -30,6 +32,9 @@ link_directories(${SDL2_LIBDIR}) # Definir las bibliotecas comunes set(LIBS SDL2main SDL2) +# Configuración común de salida de ejecutables en el directorio raíz +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}) + # Objetivos específicos por plataforma if(WIN32) set(LIBS ${LIBS} mingw32 opengl32 gdi32 winmm imm32 ole32 version) @@ -37,19 +42,19 @@ if(WIN32) # Windows estándar add_executable(${PROJECT_NAME}_windows ${SOURCES}) target_compile_definitions(${PROJECT_NAME}_windows PRIVATE WINDOWS_BUILD) - set_target_properties(${PROJECT_NAME}_windows PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") + set_target_properties(${PROJECT_NAME}_windows PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_windows") target_link_libraries(${PROJECT_NAME}_windows ${LIBS}) # Windows Debug add_executable(${PROJECT_NAME}_windows_debug ${SOURCES}) target_compile_definitions(${PROJECT_NAME}_windows_debug PRIVATE WINDOWS_BUILD DEBUG VERBOSE) - set_target_properties(${PROJECT_NAME}_windows_debug PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_debug") + set_target_properties(${PROJECT_NAME}_windows_debug PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_windows_debug") target_link_libraries(${PROJECT_NAME}_windows_debug ${LIBS}) # Windows Release add_executable(${PROJECT_NAME}_windows_release ${SOURCES}) target_compile_definitions(${PROJECT_NAME}_windows_release PRIVATE WINDOWS_BUILD) - set_target_properties(${PROJECT_NAME}_windows_release PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_release") + set_target_properties(${PROJECT_NAME}_windows_release PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_windows_release") target_link_libraries(${PROJECT_NAME}_windows_release ${LIBS}) elseif(APPLE) @@ -58,19 +63,19 @@ elseif(APPLE) # macOS estándar add_executable(${PROJECT_NAME}_macos ${SOURCES}) target_compile_definitions(${PROJECT_NAME}_macos PRIVATE MACOS_BUILD) - set_target_properties(${PROJECT_NAME}_macos PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") + set_target_properties(${PROJECT_NAME}_macos PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_macos") target_link_libraries(${PROJECT_NAME}_macos ${LIBS}) # macOS Debug add_executable(${PROJECT_NAME}_macos_debug ${SOURCES}) target_compile_definitions(${PROJECT_NAME}_macos_debug PRIVATE MACOS_BUILD DEBUG VERBOSE) - set_target_properties(${PROJECT_NAME}_macos_debug PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_debug") + set_target_properties(${PROJECT_NAME}_macos_debug PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_macos_debug") target_link_libraries(${PROJECT_NAME}_macos_debug ${LIBS}) # macOS Release add_executable(${PROJECT_NAME}_macos_release ${SOURCES}) target_compile_definitions(${PROJECT_NAME}_macos_release PRIVATE MACOS_BUILD) - set_target_properties(${PROJECT_NAME}_macos_release PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_release") + set_target_properties(${PROJECT_NAME}_macos_release PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_macos_release") target_link_libraries(${PROJECT_NAME}_macos_release ${LIBS}) elseif(UNIX AND NOT APPLE) @@ -79,23 +84,23 @@ elseif(UNIX AND NOT APPLE) # Linux estándar add_executable(${PROJECT_NAME}_linux ${SOURCES}) target_compile_definitions(${PROJECT_NAME}_linux PRIVATE LINUX_BUILD) - set_target_properties(${PROJECT_NAME}_linux PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") + set_target_properties(${PROJECT_NAME}_linux PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_linux") target_link_libraries(${PROJECT_NAME}_linux ${LIBS}) # Linux Debug add_executable(${PROJECT_NAME}_linux_debug ${SOURCES}) target_compile_definitions(${PROJECT_NAME}_linux_debug PRIVATE LINUX_BUILD DEBUG VERBOSE) - set_target_properties(${PROJECT_NAME}_linux_debug PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_debug") + set_target_properties(${PROJECT_NAME}_linux_debug PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_linux_debug") target_link_libraries(${PROJECT_NAME}_linux_debug ${LIBS}) # Linux Release add_executable(${PROJECT_NAME}_linux_release ${SOURCES}) target_compile_definitions(${PROJECT_NAME}_linux_release PRIVATE LINUX_BUILD) - set_target_properties(${PROJECT_NAME}_linux_release PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_release") + set_target_properties(${PROJECT_NAME}_linux_release PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_linux_release") target_link_libraries(${PROJECT_NAME}_linux_release ${LIBS}) endif() -# Agregar un custom target para cada tipo de build +# Agregar custom targets para invocar objetivos de build específicos add_custom_target(build_windows_debug DEPENDS ${PROJECT_NAME}_windows_debug) add_custom_target(build_windows_release DEPENDS ${PROJECT_NAME}_windows_release) add_custom_target(build_macos_debug DEPENDS ${PROJECT_NAME}_macos_debug)