mirror of
https://github.com/libretro/RetroArch
synced 2025-01-15 23:02:24 +00:00
133 lines
3.9 KiB
CMake
133 lines
3.9 KiB
CMake
cmake_minimum_required(VERSION 2.8)
|
|
|
|
project(vmcs_host_apps)
|
|
|
|
SET(PROJECT_VER_MAJOR 1)
|
|
SET(PROJECT_VER_MINOR 0)
|
|
SET(PROJECT_VER_PATCH 0)
|
|
SET(PROJECT_VER "${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}.${PROJECT_VER_PATCH}")
|
|
SET(PROJECT_APIVER "${PROJECT_VER}")
|
|
|
|
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)
|
|
|
|
set(VCOS_PTHREADS_BUILD_SHARED TRUE)
|
|
|
|
include(makefiles/cmake/global_settings.cmake)
|
|
include(makefiles/cmake/arm-linux.cmake)
|
|
include(makefiles/cmake/vmcs.cmake)
|
|
|
|
enable_language(ASM)
|
|
|
|
# Global include paths
|
|
include_directories(host_applications/framework)
|
|
include_directories(${PROJECT_SOURCE_DIR})
|
|
include_directories(interface/vcos/pthreads)
|
|
include_directories(interface/vmcs_host/linux)
|
|
include_directories(interface/vmcs_host)
|
|
include_directories(interface/vmcs_host/khronos)
|
|
include_directories(interface/khronos/include)
|
|
include_directories(${PROJECT_BINARY_DIR})
|
|
include_directories(interface/vchiq_arm)
|
|
#include_directories(tools/inet_transport)
|
|
include_directories(host_support/include)
|
|
|
|
# Global compiler flags
|
|
if(CMAKE_COMPILER_IS_GNUCC)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar -Wall -Wno-unused-but-set-variable -fPIC")
|
|
endif()
|
|
|
|
add_definitions(-D_REENTRANT)
|
|
add_definitions(-DUSE_VCHIQ_ARM -DVCHI_BULK_ALIGN=1 -DVCHI_BULK_GRANULARITY=1)
|
|
add_definitions(-DOMX_SKIP64BIT)
|
|
add_definitions(-DEGL_SERVER_DISPMANX)
|
|
add_definitions(-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64)
|
|
add_definitions(-D_GNU_SOURCE)
|
|
|
|
# do we actually need this?
|
|
add_definitions(-D__VIDEOCORE4__)
|
|
add_definitions(-DTV_SUPPORTED_MODE_NO_DEPRECATED)
|
|
|
|
# add_definitions(-DKHRONOS_CLIENT_LOGGING)
|
|
|
|
# Check for OpenWF-C value set via command line
|
|
if(KHRONOS_EGL_PLATFORM MATCHES "openwfc")
|
|
add_definitions(-DKHRONOS_EGL_PLATFORM_OPENWFC)
|
|
endif()
|
|
|
|
# List of subsidiary CMakeLists
|
|
add_subdirectory(interface/vcos)
|
|
add_subdirectory(interface/vmcs_host)
|
|
add_subdirectory(interface/vchiq_arm)
|
|
if(NOT ARM64)
|
|
add_subdirectory(interface/khronos)
|
|
endif()
|
|
|
|
#add_subdirectory(opensrc/tools/lua)
|
|
if(BUILD_MMAL)
|
|
include_directories(interface/mmal)
|
|
add_subdirectory(interface/mmal)
|
|
add_subdirectory(containers)
|
|
endif()
|
|
|
|
# VidTex supports Android and Linux
|
|
if(BUILD_MMAL_APPS)
|
|
add_subdirectory(host_applications/android/apps/vidtex)
|
|
endif(BUILD_MMAL_APPS)
|
|
|
|
if(NOT ARM64)
|
|
add_subdirectory(middleware/openmaxil)
|
|
endif()
|
|
|
|
# 3d demo code
|
|
#if(NOT ANDROID)
|
|
# add_subdirectory(thirdparty/applications/demos)
|
|
# add_subdirectory(opensrc/applications/demos)
|
|
#endif()
|
|
|
|
#if(ENABLE_3D_TESTS)
|
|
# add_subdirectory(thirdparty/applications/test)
|
|
#endif()
|
|
|
|
# FIXME: we should use a pre-packaged version of freetype
|
|
# rather than the one included in the repo.
|
|
#add_subdirectory(opensrc/helpers/freetype)
|
|
#add_subdirectory(${PROJECT_SOURCE_DIR}/opensrc/helpers/fonts/ttf-bitstream-vera)
|
|
|
|
# VMCS Host Applications
|
|
#add_subdirectory(host_applications/framework)
|
|
|
|
# add_subdirectory(interface/vchiq/test/win32)
|
|
|
|
# Apps and libraries supporting Camera Tuning Tool
|
|
#add_subdirectory(tools/inet_transport/linux)
|
|
#add_subdirectory(host_support/vcstandalone)
|
|
|
|
# add linux apps
|
|
add_subdirectory(host_applications/linux)
|
|
add_subdirectory(opensrc/helpers/libfdt)
|
|
add_subdirectory(helpers/dtoverlay)
|
|
|
|
set(vmcs_host_apps_VERSION_MAJOR 1)
|
|
set(vmcs_host_apps_VERSION_MINOR 0)
|
|
|
|
include_directories("${PROJECT_BINARY_DIR}")
|
|
include(FindPkgConfig QUIET)
|
|
if(PKG_CONFIG_FOUND)
|
|
# Produce a pkg-config file
|
|
foreach(PCFILE bcm_host.pc egl.pc glesv2.pc vg.pc brcmegl.pc brcmglesv2.pc brcmvg.pc vcsm.pc mmal.pc )
|
|
configure_file("pkgconfig/${PCFILE}.in" "${PCFILE}" @ONLY)
|
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PCFILE}"
|
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
|
|
endforeach()
|
|
endif()
|
|
# Remove cache entry, if one added by command line
|
|
unset(KHRONOS_EGL_PLATFORM CACHE)
|