Update CMakeLists.txt to allow optional building of tools & ppc libs.

This commit is contained in:
James Benton 2018-06-13 18:54:28 +01:00
parent 6344e56090
commit 0b5ff33be1

View File

@ -3,16 +3,10 @@ project(wut)
include(ExternalProject) include(ExternalProject)
option(WUT_BUILD_DOCS "Build documentation" OFF) option(WUT_BUILD_DOCS "Build documentation" OFF)
option(WUT_BUILD_TOOLS "Build tools" ON)
set(DEVKITPPC $ENV{DEVKITPPC} CACHE STRING "Path to devkitPPC install") option(WUT_BUILD_PPC "Build PPC code using devkitPPC" ON)
# Check for DEVKITPPC
if(NOT DEVKITPPC)
message(FATAL_ERROR "You must have defined DEVKITPPC before calling cmake.")
endif()
set(WUT_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) set(WUT_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
set(WUT_TOOLCHAIN "${CMAKE_CURRENT_SOURCE_DIR}/share/wut.toolchain.cmake")
set(WUT_STAGING "${CMAKE_BINARY_DIR}/staging") set(WUT_STAGING "${CMAKE_BINARY_DIR}/staging")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
@ -31,31 +25,43 @@ if(WUT_BUILD_DOCS)
add_subdirectory(docs) add_subdirectory(docs)
endif() endif()
add_subdirectory(tools) if(WUT_BUILD_TOOLS)
add_subdirectory(tools)
endif()
externalproject_add(cafe if(WUT_BUILD_PPC)
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cafe" set(DEVKITPPC $ENV{DEVKITPPC} CACHE STRING "Path to devkitPPC install")
CMAKE_GENERATOR "Unix Makefiles"
INSTALL_DIR "${WUT_STAGING}"
CMAKE_CACHE_ARGS
-DDEVKITPPC:string=${DEVKITPPC}
-DWUT_ROOT:filepath=${WUT_ROOT}
-DWUT_RPLIMPORTGEN:filepath=$<TARGET_FILE:rplimportgen>
-DCMAKE_TOOLCHAIN_FILE:filepath=${WUT_TOOLCHAIN}
-DCMAKE_INSTALL_PREFIX:string=<INSTALL_DIR>
DEPENDS rplimportgen
BUILD_ALWAYS 1)
externalproject_add(libraries if(NOT DEVKITPPC)
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries" message(FATAL_ERROR "You must have defined DEVKITPPC to build PPC libraries.")
CMAKE_GENERATOR "Unix Makefiles" endif()
INSTALL_DIR "${WUT_STAGING}"
CMAKE_CACHE_ARGS set(WUT_TOOLCHAIN "${CMAKE_CURRENT_SOURCE_DIR}/share/wut.toolchain.cmake")
-DDEVKITPPC:string=${DEVKITPPC}
-DWUT_ROOT:filepath=${WUT_ROOT} externalproject_add(cafe
-DCMAKE_TOOLCHAIN_FILE:filepath=${WUT_TOOLCHAIN} SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cafe"
-DCMAKE_INSTALL_PREFIX:string=<INSTALL_DIR> CMAKE_GENERATOR "Unix Makefiles"
BUILD_ALWAYS 1) INSTALL_DIR "${WUT_STAGING}"
CMAKE_CACHE_ARGS
-DDEVKITPPC:string=${DEVKITPPC}
-DWUT_ROOT:filepath=${WUT_ROOT}
-DWUT_RPLIMPORTGEN:filepath=$<TARGET_FILE:rplimportgen>
-DCMAKE_TOOLCHAIN_FILE:filepath=${WUT_TOOLCHAIN}
-DCMAKE_INSTALL_PREFIX:string=<INSTALL_DIR>
DEPENDS rplimportgen
BUILD_ALWAYS 1)
externalproject_add(libraries
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries"
CMAKE_GENERATOR "Unix Makefiles"
INSTALL_DIR "${WUT_STAGING}"
CMAKE_CACHE_ARGS
-DDEVKITPPC:string=${DEVKITPPC}
-DWUT_ROOT:filepath=${WUT_ROOT}
-DCMAKE_TOOLCHAIN_FILE:filepath=${WUT_TOOLCHAIN}
-DCMAKE_INSTALL_PREFIX:string=<INSTALL_DIR>
BUILD_ALWAYS 1)
endif()
install(DIRECTORY "${CMAKE_SOURCE_DIR}/include/" install(DIRECTORY "${CMAKE_SOURCE_DIR}/include/"
DESTINATION "${CMAKE_INSTALL_PREFIX}/include" DESTINATION "${CMAKE_INSTALL_PREFIX}/include"