Add ARM64 CMake variable for 64-bit targets
authorRyan Finnie <ryan@finnie.org>
Wed, 19 Oct 2016 23:12:14 +0000 (23:12 +0000)
committerluked99 <luke@diamand.org>
Sun, 30 Oct 2016 12:58:02 +0000 (12:58 +0000)
At the moment, much of the codebase compiles on 64-bit targets, but not
all (mostly 32-bit assembly).  -DARM64=ON allows for skipping
directories which currently do not compile correctly.

This is backwards compatible with existing behavior (i.e. no -DARM on a
32-bit target compiles everything as before), and hopefully will
ultimately become unnecessary as remaining components are fixed for
64-bit use.

CMakeLists.txt
host_applications/linux/CMakeLists.txt
makefiles/cmake/vmcs.cmake

index d3159c754a75282d18de092c4b16df4b985b149e..98252c3818aa0aeb1eff63416576575d751c28be 100644 (file)
@@ -8,8 +8,13 @@ SET(PROJECT_VER_PATCH 0)
 SET(PROJECT_VER "${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}.${PROJECT_VER_PATCH}")
 SET(PROJECT_APIVER "${PROJECT_VER}")
 
-set(BUILD_MMAL TRUE)
-set(BUILD_MMAL_APPS TRUE)
+if(ARM64)
+   set(BUILD_MMAL FALSE)
+   set(BUILD_MMAL_APPS FALSE)
+else()
+   set(BUILD_MMAL TRUE)
+   set(BUILD_MMAL_APPS TRUE)
+endif()
 set(vmcs_root ${PROJECT_SOURCE_DIR})
 get_filename_component(VIDEOCORE_ROOT . ABSOLUTE)
 
@@ -61,7 +66,9 @@ endif()
 add_subdirectory(interface/vcos)
 add_subdirectory(interface/vmcs_host)
 add_subdirectory(interface/vchiq_arm)
-add_subdirectory(interface/khronos)
+if(NOT ARM64)
+   add_subdirectory(interface/khronos)
+endif()
 
 #add_subdirectory(opensrc/tools/lua)
 if(BUILD_MMAL)
@@ -75,7 +82,9 @@ if(BUILD_MMAL_APPS)
 add_subdirectory(host_applications/android/apps/vidtex)
 endif(BUILD_MMAL_APPS)
 
-add_subdirectory(middleware/openmaxil)
+if(NOT ARM64)
+   add_subdirectory(middleware/openmaxil)
+endif()
 
 # 3d demo code
 #if(NOT ANDROID)
index 5a648e7d5c43ca6290eed000283b1b9b00d9b551..e8615cc463d81c26db72efe40c52d22834358e90 100644 (file)
@@ -1,12 +1,16 @@
 # linux apps
 
-add_subdirectory(libs/bcm_host)
+if(NOT ARM64)
+   add_subdirectory(libs/bcm_host)
+endif()
 add_subdirectory(apps/gencmd)
 add_subdirectory(apps/tvservice)
 add_subdirectory(apps/vcmailbox)
-add_subdirectory(apps/raspicam)
-add_subdirectory(libs/sm)
-add_subdirectory(apps/smem)
+if(NOT ARM64)
+   add_subdirectory(apps/raspicam)
+   add_subdirectory(libs/sm)
+   add_subdirectory(apps/smem)
+endif()
 add_subdirectory(libs/debug_sym)
 add_subdirectory(apps/dtoverlay)
 add_subdirectory(apps/dtmerge)
index 9a5c71125328915a26d12ab0ec044b15b51dc8d0..718cd3be98ff6ea78a4979c7430d7f35ae68433d 100644 (file)
@@ -29,6 +29,7 @@ elseif (${WIN32})
 else()
    message(FATAL_ERROR,"Unknown system type")
 endif()
+set (ARM64 OFF CACHE BOOL "Whether target is ARM64")
 
 # construct the vmcs config header file
 add_definitions(-DHAVE_VMCS_CONFIG)