]> Some of my projects - openlase.git/commitdiff
Add yasm support CMake modules
authorHector Martin <hector@marcansoft.com>
Sat, 12 Mar 2011 17:55:18 +0000 (18:55 +0100)
committerHector Martin <hector@marcansoft.com>
Sat, 12 Mar 2011 18:22:43 +0000 (19:22 +0100)
CMakeLists.txt
Modules/CMakeASM_YASMInformation.cmake [new file with mode: 0644]
Modules/CMakeDetermineASM_YASMCompiler.cmake [new file with mode: 0644]
Modules/CMakeTestASM_YASMCompiler.cmake [new file with mode: 0644]

index 8021333df808d033cc7c95395509550807cc2cb4..c8f5f11e3381d16e6a997b854dbaf8c0ab79724e 100644 (file)
@@ -22,6 +22,12 @@ cmake_minimum_required(VERSION 2.6)
 
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/Modules/")
 
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+  set(BITS 64)
+else()
+  set(BITS 32)
+endif()
+
 find_package(Threads REQUIRED)
 find_package(JACK REQUIRED)
 find_package(Qt4)
diff --git a/Modules/CMakeASM_YASMInformation.cmake b/Modules/CMakeASM_YASMInformation.cmake
new file mode 100644 (file)
index 0000000..50b2848
--- /dev/null
@@ -0,0 +1,27 @@
+set(ASM_DIALECT "_YASM")
+set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm)
+
+if(UNIX)
+  if(BITS EQUAL 64)
+    set(CMAKE_ASM_YASM_COMPILER_ARG1 "-f elf64 -DARCH_X86_64")
+  else()
+    set(CMAKE_ASM_YASM_COMPILER_ARG1 "-f elf32")
+  endif()
+else()
+  if(BITS EQUAL 64)
+    set(CMAKE_ASM_YASM_COMPILER_ARG1 "-f win64 -DARCH_X86_64")
+  else()
+    set(CMAKE_ASM_YASM_COMPILER_ARG1 "-f win32")
+  endif()
+endif()
+
+# This section exists to override the one in CMakeASMInformation.cmake
+# (the default Information file). This removes the <FLAGS>
+# thing so that your C compiler flags that have been set via
+# set_target_properties don't get passed to yasm and confuse it.
+if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT)
+  set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> -o <OBJECT> <SOURCE>")
+endif()
+
+include(CMakeASMInformation)
+set(ASM_DIALECT)
diff --git a/Modules/CMakeDetermineASM_YASMCompiler.cmake b/Modules/CMakeDetermineASM_YASMCompiler.cmake
new file mode 100644 (file)
index 0000000..bf43442
--- /dev/null
@@ -0,0 +1,4 @@
+set(ASM_DIALECT "_YASM")
+set(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ${_CMAKE_TOOLCHAIN_PREFIX}yasm)
+include(CMakeDetermineASMCompiler)
+set(ASM_DIALECT)
diff --git a/Modules/CMakeTestASM_YASMCompiler.cmake b/Modules/CMakeTestASM_YASMCompiler.cmake
new file mode 100644 (file)
index 0000000..c668668
--- /dev/null
@@ -0,0 +1,3 @@
+set(ASM_DIALECT "_YASM")
+include(CMakeTestASMCompiler)
+set(ASM_DIALECT)