refactor(cmake): split CMakeLists into modules (#1587)
This commit is contained in:
parent
9543bc77d8
commit
92b4eeee55
41 changed files with 1240 additions and 964 deletions
15
cmake/macros/common.cmake
Normal file
15
cmake/macros/common.cmake
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# common macros
|
||||
# this file will also load platform specific macros
|
||||
|
||||
# platform specific macros
|
||||
if(WIN32)
|
||||
include(${CMAKE_MODULE_PATH}/macros/windows.cmake)
|
||||
elseif(UNIX)
|
||||
include(${CMAKE_MODULE_PATH}/macros/unix.cmake)
|
||||
|
||||
if(APPLE)
|
||||
include(${CMAKE_MODULE_PATH}/macros/macos.cmake)
|
||||
else()
|
||||
include(${CMAKE_MODULE_PATH}/macros/linux.cmake)
|
||||
endif()
|
||||
endif()
|
||||
31
cmake/macros/linux.cmake
Normal file
31
cmake/macros/linux.cmake
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# linux specific macros
|
||||
|
||||
# GEN_WAYLAND: args = `filename`
|
||||
macro(GEN_WAYLAND filename)
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/generated-src)
|
||||
|
||||
message("wayland-scanner private-code \
|
||||
${CMAKE_SOURCE_DIR}/third-party/wayland-protocols/${filename}.xml \
|
||||
${CMAKE_BINARY_DIR}/generated-src/${filename}.c")
|
||||
message("wayland-scanner client-header \
|
||||
${CMAKE_SOURCE_DIR}/third-party/wayland-protocols/${filename}.xml \
|
||||
${CMAKE_BINARY_DIR}/generated-src/${filename}.h")
|
||||
execute_process(
|
||||
COMMAND wayland-scanner private-code
|
||||
${CMAKE_SOURCE_DIR}/third-party/wayland-protocols/${filename}.xml
|
||||
${CMAKE_BINARY_DIR}/generated-src/${filename}.c
|
||||
COMMAND wayland-scanner client-header
|
||||
${CMAKE_SOURCE_DIR}/third-party/wayland-protocols/${filename}.xml
|
||||
${CMAKE_BINARY_DIR}/generated-src/${filename}.h
|
||||
|
||||
RESULT_VARIABLE EXIT_INT
|
||||
)
|
||||
|
||||
if(NOT ${EXIT_INT} EQUAL 0)
|
||||
message(FATAL_ERROR "wayland-scanner failed")
|
||||
endif()
|
||||
|
||||
list(APPEND PLATFORM_TARGET_FILES
|
||||
${CMAKE_BINARY_DIR}/generated-src/${filename}.c
|
||||
${CMAKE_BINARY_DIR}/generated-src/${filename}.h)
|
||||
endmacro()
|
||||
16
cmake/macros/macos.cmake
Normal file
16
cmake/macros/macos.cmake
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# macos specific macros
|
||||
|
||||
# ADD_FRAMEWORK: args = `fwname`, `appname`
|
||||
macro(ADD_FRAMEWORK fwname appname)
|
||||
find_library(FRAMEWORK_${fwname}
|
||||
NAMES ${fwname}
|
||||
PATHS ${CMAKE_OSX_SYSROOT}/System/Library
|
||||
PATH_SUFFIXES Frameworks
|
||||
NO_DEFAULT_PATH)
|
||||
if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
|
||||
MESSAGE(ERROR ": Framework ${fwname} not found")
|
||||
else()
|
||||
TARGET_LINK_LIBRARIES(${appname} "${FRAMEWORK_${fwname}}/${fwname}")
|
||||
MESSAGE(STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}}")
|
||||
endif()
|
||||
endmacro(ADD_FRAMEWORK)
|
||||
2
cmake/macros/unix.cmake
Normal file
2
cmake/macros/unix.cmake
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
# unix specific macros
|
||||
# put anything here that applies to both linux and macos
|
||||
1
cmake/macros/windows.cmake
Normal file
1
cmake/macros/windows.cmake
Normal file
|
|
@ -0,0 +1 @@
|
|||
# windows specific macros
|
||||
Loading…
Add table
Add a link
Reference in a new issue