vxGDuck/CMakeLists.txt

50 lines
1.5 KiB
CMake

cmake_minimum_required(VERSION 3.15)
if(
NOT DEFINED ENV{VXSDK_PKG_NAME}
OR NOT DEFINED ENV{VXSDK_PKG_VERSION}
OR NOT DEFINED ENV{VXSDK_BUILD_CFLAGS}
OR NOT DEFINED ENV{VXSDK_BUILD_LDFLAGS}
OR NOT DEFINED ENV{VXSDK_BUILD_LIBS}
OR NOT DEFINED ENV{VXSDK_ASSETS_PREFIX_SRC}
OR NOT DEFINED ENV{VXSDK_PREFIX_BUILD}
OR NOT DEFINED ENV{VXSDK_PREFIX_INSTALL})
message(FATAL_ERROR "You should use the vxSDK to build this project")
endif()
set(VXSDK_PKG_NAME $ENV{VXSDK_PKG_NAME})
set(VXSDK_PKG_VERSION $ENV{VXSDK_PKG_VERSION})
set(VXSDK_PREFIX_BUILD $ENV{VXSDK_PREFIX_BUILD})
set(VXSDK_PREFIX_INSTALL $ENV{VXSDK_PREFIX_INSTALL})
set(VXSDK_BUILD_CFLAGS $ENV{VXSDK_BUILD_CFLAGS})
set(VXSDK_BUILD_LDFLAGS $ENV{VXSDK_BUILD_LDFLAGS})
set(VXSDK_BUILD_LIBS $ENV{VXSDK_BUILD_LIBS})
set(VXSDK_ASSETS_PREFIX_SRC $ENV{VXSDK_ASSETS_PREFIX_SRC})
#---
# handle project-specific information
#---
project(${VXSDK_PKG_NAME} VERSION ${VXSDK_PKG_VERSION} LANGUAGES C ASM)
#---
# Handle source listing
#---
file(GLOB_RECURSE SOURCES src/*.[csS] ${VXSDK_ASSETS_PREFIX_SRC}/*.[csS])
#---
# Compile-specific declaration
#---
link_directories(${VXSDK_PREFIX_INSTALL}/lib)
include_directories(include ${VXSDK_PREFIX_INSTALL}/include)
add_compile_options(-Wall -Wextra ${VXSDK_BUILD_CFLAGS})
add_executable(${VXSDK_PKG_NAME} ${SOURCES})
target_link_libraries(${VXSDK_PKG_NAME} ${VXSDK_BUILD_LIBS})
foreach(ldflag ${VXSDK_BUILD_LDFLAGS})
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${ldflag}")
endforeach()