From 2b29bca2a977c45ad75181df7e9e685ddd98329c Mon Sep 17 00:00:00 2001 From: DRC Date: Wed, 7 Dec 2016 18:11:38 -0600 Subject: [PATCH] Build: Fix Debug/RelWithDebInfo build with YASM YASM requires a debug format to be specified with -g. Currently the only combination that I can make work at all is DWARF-2/ELF (YASM doesn't support Mach-O debugging at all, and its support for CV8/MSVC and MinGW/DWARF-2 appears to be broken), so debugging is only enabled automatically for ELF at the moment. For other formats, we don't specify -g at all, which is how the old build system behaved. Fixes #125, Closes #126 --- simd/CMakeLists.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/simd/CMakeLists.txt b/simd/CMakeLists.txt index e8d63eb..a882188 100755 --- a/simd/CMakeLists.txt +++ b/simd/CMakeLists.txt @@ -45,6 +45,7 @@ if(CMAKE_ASM_NASM_OBJECT_FORMAT MATCHES "macho*") set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DMACHO") elseif(CMAKE_ASM_NASM_OBJECT_FORMAT MATCHES "elf*") set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DELF") + set(CMAKE_ASM_NASM_DEBUG_FORMAT "dwarf2") endif() if(CPU_TYPE STREQUAL "x86_64") if(WIN32 OR CYGWIN) @@ -66,6 +67,20 @@ if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT) return() endif() +get_filename_component(CMAKE_ASM_NASM_COMPILER_TYPE + "${CMAKE_ASM_NASM_COMPILER}" NAME_WE) +if(CMAKE_ASM_NASM_COMPILER_TYPE MATCHES "yasm") + foreach(var CMAKE_ASM_NASM_FLAGS_DEBUG CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO) + if(${var} STREQUAL "-g") + if(CMAKE_ASM_NASM_DEBUG_FORMAT) + set_property(CACHE ${var} PROPERTY VALUE "-g ${CMAKE_ASM_NASM_DEBUG_FORMAT}") + else() + set_property(CACHE ${var} PROPERTY VALUE "") + endif() + endif() + endforeach() +endif() + if(NOT WIN32 AND (CMAKE_POSITION_INDEPENDENT_CODE OR ENABLE_SHARED)) set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DPIC") endif() -- 2.50.1