ChonkyStation/zep/extensions/CMakeLists.txt
2022-07-07 16:42:31 +02:00

90 lines
2.6 KiB
CMake

IF (BUILD_EXTENSIONS)
project(ZepExtensions
VERSION 0.1.0.0)
# If building Rezonality, the mutils project will be in the vcpkg
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${CMAKE_CURRENT_LIST_DIR}/../../vcpkg/packages/mutils_${VCPKG_TARGET_TRIPLET}/lib/cmake/mutils)
find_package(SDL2 REQUIRED)
find_package(gsl-lite REQUIRED)
find_package(SDL2 REQUIRED)
find_package(fmt REQUIRED)
find_package(gl3w REQUIRED)
find_package(freetype CONFIG REQUIRED)
find_package(unofficial-concurrentqueue REQUIRED)
find_package(tinyfiledialogs REQUIRED)
find_package(MUtils REQUIRED)
if (WIN32)
add_compile_options("$<$<CONFIG:RELWITHDEBINFO>:-DTRACY_ENABLE=1>")
add_compile_options("$<$<CONFIG:DEBUG>:-DTRACY_ENABLE=1>")
endif()
SET(EXTENSION_ROOT ${CMAKE_CURRENT_LIST_DIR})
SET(ORCA_SRC
${EXTENSION_ROOT}/orca/mode_orca.cpp
${EXTENSION_ROOT}/orca/mode_orca.h
${EXTENSION_ROOT}/orca/orca.cpp
${EXTENSION_ROOT}/orca/orca.h
${EXTENSION_ROOT}/orca/syntax_orca.cpp
${EXTENSION_ROOT}/orca/syntax_orca.h
)
SET(REPL_SRC
${EXTENSION_ROOT}/repl/mode_repl.cpp
${EXTENSION_ROOT}/repl/mode_repl.h)
SET(SOURCES ${REPL_SRC} ${ORCA_SRC})
SET(ZEP_EXTENSION_SRC ${SOURCES} PARENT_SCOPE)
# Create the library - No depenencies on anything else in this file
add_library(ZepExtensions STATIC ${SOURCES})
add_library(Zep::ZepExtensions ALIAS ZepExtensions)
target_include_directories(ZepExtensions
PRIVATE
${ZEP_ROOT}/src/mcommon
${ZEP_ROOT}/src
${SRC_INCLUDE}
${CMAKE_BINARY_DIR}
${ZEP_ROOT}/include
${ZEP_ROOT}/extensions
PUBLIC
$<INSTALL_INTERFACE:include/zep/extensions> # This is the target path in the installer
$<BUILD_INTERFACE:${ZEP_ROOT}/extensions> # This is the target path in the installe
)
target_link_libraries (${PROJECT_NAME}
PUBLIC
Zep
MUtils::MUtils
SDL2::SDL2-static
SDL2::SDL2main
${PLATFORM_LINKLIBS})
# Set locations for components
set_target_properties(${PROJECT_NAME} PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
# Install the binary
install(TARGETS ${PROJECT_NAME}
EXPORT zep-targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${LIBLEGACY_INCLUDE_DIRS}
)
# Install the extension files
install(DIRECTORY ${ZEP_ROOT}/extensions/orca
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/zep/extensions
)
install(DIRECTORY ${ZEP_ROOT}/extensions/repl
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/zep/extensions)
endif()