]> granicus.if.org Git - libjpeg-turbo/commitdiff
Build: Fix Debug/RelWithDebInfo build with YASM
authorDRC <information@libjpeg-turbo.org>
Thu, 8 Dec 2016 00:11:38 +0000 (18:11 -0600)
committerDRC <information@libjpeg-turbo.org>
Thu, 8 Dec 2016 00:18:35 +0000 (18:18 -0600)
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

index e8d63eb453a674dc368d5d1143a03c98719b16f6..a882188490d146007be1851491c5afcbf66ee3cc 100755 (executable)
@@ -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()