]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Added cmake toolchain arm support. (#350)
authorNathan Moinvaziri <nathan@solidstatenetworks.com>
Tue, 4 Jun 2019 08:48:43 +0000 (01:48 -0700)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Tue, 4 Jun 2019 08:48:43 +0000 (10:48 +0200)
This PR only adds cmake toolchain files for ARM. NAME/COMMAND stuff is so CMAKE_CROSSCOMPILING_EMULATOR is used. The message() is to prevent a warning about unused variable when specifying CMAKE_TOOLCHAIN_FILE.

CMakeLists.txt
cmake/toolchain-aarch64.cmake [new file with mode: 0644]
cmake/toolchain-arm.cmake [new file with mode: 0644]

index ba55fb5a7d3455cbf30bc85bd4b7002e3472df2d..25bd31b72bc881c0d420a99063a7d9fecc5f4e17 100644 (file)
@@ -79,6 +79,10 @@ else()
 endif()
 message(STATUS "Architecture: ${ARCH}")
 
+if(CMAKE_TOOLCHAIN_FILE)
+    message(STATUS "Using cmake toolchain: ${CMAKE_TOOLCHAIN_FILE}")
+endif()
+
 option (WITH_GZFILEOP "Compile with support for gzFile related functions" OFF)
 option (ZLIB_COMPAT "Compile with zlib compatible API" OFF)
 if (ZLIB_COMPAT)
@@ -807,7 +811,7 @@ if (ZLIB_ENABLE_TESTS)
     enable_testing()
     add_executable(example test/example.c)
     target_link_libraries(example zlib)
-    add_test(example example${CMAKE_EXECUTABLE_SUFFIX})
+    add_test(NAME example COMMAND example${CMAKE_EXECUTABLE_SUFFIX})
 
     add_executable(minigzip test/minigzip.c)
     target_link_libraries(minigzip zlib)
@@ -816,7 +820,7 @@ if (ZLIB_ENABLE_TESTS)
         add_executable(example64 test/example.c)
         target_link_libraries(example64 zlib)
         set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
-        add_test(example64 example64${CMAKE_EXECUTABLE_SUFFIX})
+        add_test(NAME example64 COMMAND example64${CMAKE_EXECUTABLE_SUFFIX})
 
         add_executable(minigzip64 test/minigzip.c)
         target_link_libraries(minigzip64 zlib)
diff --git a/cmake/toolchain-aarch64.cmake b/cmake/toolchain-aarch64.cmake
new file mode 100644 (file)
index 0000000..31894fd
--- /dev/null
@@ -0,0 +1,26 @@
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR aarch64)
+set(CMAKE_SYSTEM_VERSION 1)
+
+message(STATUS "Using cross-compile toolchain: ${CROSS_COMPILE_TOOLCHAIN}")
+
+set(CMAKE_C_COMPILER_TARGET "aarch64-linux-gnu")
+set(CMAKE_CXX_COMPILER_TARGET "aarch64-linux-gnu")
+
+set(CMAKE_CROSSCOMPILING TRUE)
+set(CMAKE_CROSSCOMPILING_EMULATOR qemu-aarch64 -L /usr/${CMAKE_C_COMPILER_TARGET}/)
+
+SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+find_program(C_COMPILER_FULL_PATH ${CMAKE_C_COMPILER_TARGET}-gcc)
+if(NOT C_COMPILER_FULL_PATH)
+    message(FATAL_ERROR "Cross-compiler ${CMAKE_C_COMPILER_TARGET}-gcc not found")
+endif()
+set(CMAKE_C_COMPILER ${C_COMPILER_FULL_PATH})
+
+find_program(CXX_COMPILER_FULL_PATH ${CMAKE_C_COMPILER_TARGET}-g++)
+if(CXX_COMPILER_FULL_PATH)
+    set(CMAKE_CXX_COMPILER ${CXX_COMPILER_FULL_PATH})
+endif()
diff --git a/cmake/toolchain-arm.cmake b/cmake/toolchain-arm.cmake
new file mode 100644 (file)
index 0000000..0e3c5c3
--- /dev/null
@@ -0,0 +1,24 @@
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR arm)
+set(CMAKE_SYSTEM_VERSION 1)
+
+message(STATUS "Using cross-compile toolchain: ${CMAKE_C_COMPILER_TARGET}")
+
+set(CMAKE_CROSSCOMPILING TRUE)
+set(CMAKE_CROSSCOMPILING_EMULATOR qemu-arm -L /usr/${CMAKE_C_COMPILER_TARGET}/)
+
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+
+find_program(C_COMPILER_FULL_PATH ${CMAKE_C_COMPILER_TARGET}-gcc)
+if(NOT C_COMPILER_FULL_PATH)
+    message(FATAL_ERROR "Cross-compiler ${CMAKE_C_COMPILER_TARGET}-gcc not found")
+endif()
+set(CMAKE_C_COMPILER ${C_COMPILER_FULL_PATH})
+
+find_program(CXX_COMPILER_FULL_PATH ${CMAKE_C_COMPILER_TARGET}-g++)
+if(CXX_COMPILER_FULL_PATH)
+    set(CMAKE_CXX_COMPILER ${CXX_COMPILER_FULL_PATH})
+endif()