Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1217 This updates the CMake build present for being able to share options, fixing up flags, etc. A GTest build is added as well, along with a script and VSCode debug target so that OSS contributors can very easily run and debug tests on any OS. Note that this isn't completely done (need to revise Windows, Mac, documentation), but should be finished enough otherwise for review. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D42406686 fbshipit-source-id: 95e7ba5e4751c496a171785490e85cf0097fa839
53 lines
1.3 KiB
CMake
53 lines
1.3 KiB
CMake
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
cmake_minimum_required(VERSION 3.13)
|
|
project(yoga-all)
|
|
set(CMAKE_VERBOSE_MAKEFILE on)
|
|
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/project-defaults.cmake)
|
|
|
|
add_subdirectory(yoga)
|
|
add_subdirectory(tests)
|
|
|
|
# cmake install config
|
|
include(GNUInstallDirs)
|
|
include(CMakePackageConfigHelpers)
|
|
|
|
# declare target to install
|
|
install(TARGETS yogacore EXPORT yoga-targets
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
)
|
|
|
|
# install header files
|
|
install(DIRECTORY
|
|
"${CMAKE_CURRENT_LIST_DIR}/yoga"
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
FILES_MATCHING PATTERN "*.h"
|
|
)
|
|
|
|
# install target config
|
|
install(EXPORT yoga-targets
|
|
FILE yogaTargets.cmake
|
|
NAMESPACE yoga::
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/yoga
|
|
)
|
|
|
|
|
|
# generate config file
|
|
configure_package_config_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/yoga-config.cmake.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/yogaConfig.cmake
|
|
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/yoga
|
|
)
|
|
|
|
# install config file
|
|
install(FILES
|
|
${CMAKE_CURRENT_BINARY_DIR}/yogaConfig.cmake
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/yoga
|
|
)
|