2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-06-05 13:53:29 +00:00
metaforce/visigen/CMakeLists.txt
Lioncash d5d176d1a5 visigen/CMakeLists: Modify target directly
Instead of using variables, we can directly specify our requirements on
the target instance directly. This also avoids modifying
CMAKE_CXX_FLAGS.
2019-09-06 07:50:17 -04:00

56 lines
1.1 KiB
CMake

if(NOT WINDOWS_STORE)
cmake_minimum_required(VERSION 3.10 FATAL_ERROR) # because of c++17
project(visigen)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(visigen
VISIBuilder.cpp
VISIBuilder.hpp
VISIRenderer.cpp
VISIRenderer.hpp
)
if(MSVC)
target_compile_options(visigen PRIVATE /EHsc)
else()
target_compile_options(visigen PRIVATE
-fno-exceptions
-Werror=return-type
-Wno-multichar
-Wno-narrowing
-Wno-nullability-completeness
)
endif()
if(APPLE)
target_sources(visigen PRIVATE MainMac.mm)
set_source_files_properties(MainMac.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
elseif(WIN32)
target_sources(visigen PRIVATE MainWin.cpp)
else()
target_sources(visigen PRIVATE MainXlib.cpp)
endif()
set_target_properties(visigen PROPERTIES COMPILE_DEFINITIONS URDE_DLPACKAGE="${URDE_DLPACKAGE}")
if(APPLE)
find_library(OPENGL_LIBRARY OpenGL)
target_link_libraries(visigen PRIVATE ${OPENGL_LIBRARY})
endif()
target_link_libraries(visigen PRIVATE
athena-core
glew
hecl-light
logvisor
lzokay
xxhash
zeus
${ZLIB_LIBRARIES}
)
endif()