cmakelists build cleanup

This commit is contained in:
scawful
2024-08-08 13:42:32 -04:00
parent bb766d22eb
commit 7379a8535c
5 changed files with 50 additions and 35 deletions

View File

@@ -1,8 +1,6 @@
# CMake Specifications
cmake_minimum_required(VERSION 3.10)
# Yet Another Zelda3 Editor
# by scawful
cmake_minimum_required(VERSION 3.10)
project(yaze VERSION 0.2.0)
# Build Flags
@@ -10,10 +8,11 @@ set(YAZE_BUILD_APP ON)
set(YAZE_BUILD_Z3ED ON)
set(YAZE_BUILD_PYTHON ON)
set(YAZE_BUILD_CLIB ON)
set(YAZE_INSTALL_CLIB OFF)
set(YAZE_BUILD_TESTS OFF)
set(YAZE_BUILD_EXTENSIONS OFF)
# C++ Standard Specifications
# C++ Standard and CMake Specifications
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
@@ -24,12 +23,14 @@ set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
set(BUILD_SHARED_LIBS OFF)
set(CMAKE_FIND_FRAMEWORK LAST)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dlinux -Dstricmp=strcasecmp")
if (MACOS)
set(CMAKE_INSTALL_PREFIX /usr/local)
endif()
# Abseil Standard Specifications
include(cmake/absl.cmake)
# Video Libraries
find_package(PNG REQUIRED)
# SDL2 and PNG
include(cmake/sdl2.cmake)
# Asar

View File

@@ -1,33 +1,36 @@
get_target_property(ASAR_INCLUDE_DIR asar-static INCLUDE_DIRECTORIES)
target_include_directories(asar-static PRIVATE ${ASAR_INCLUDE_DIR})
# Asar Assembler for 65816 SNES Assembly
set(ASAR_GEN_EXE OFF)
set(ASAR_GEN_DLL ON)
set(ASAR_GEN_LIB ON)
set(ASAR_GEN_EXE_TEST OFF)
set(ASAR_GEN_DLL_TEST OFF)
set(ASAR_STATIC_SRC_DIR "${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar")
get_target_property(ASAR_INCLUDE_DIR asar-static INCLUDE_DIRECTORIES)
target_include_directories(asar-static PRIVATE ${ASAR_INCLUDE_DIR})
set(ASAR_STATIC_SRC
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/interface-lib.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/addr2line.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/arch-65816.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/arch-spc700.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/arch-superfx.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/assembleblock.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/crc32.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/libcon.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/libsmw.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/libstr.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/macro.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/main.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/asar_math.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/virtualfile.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/warnings.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/errors.cpp"
"${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/platform/file-helpers.cpp"
"${ASAR_STATIC_SRC_DIR}/interface-lib.cpp"
"${ASAR_STATIC_SRC_DIR}/addr2line.cpp"
"${ASAR_STATIC_SRC_DIR}/arch-65816.cpp"
"${ASAR_STATIC_SRC_DIR}/arch-spc700.cpp"
"${ASAR_STATIC_SRC_DIR}/arch-superfx.cpp"
"${ASAR_STATIC_SRC_DIR}/assembleblock.cpp"
"${ASAR_STATIC_SRC_DIR}/crc32.cpp"
"${ASAR_STATIC_SRC_DIR}/libcon.cpp"
"${ASAR_STATIC_SRC_DIR}/libsmw.cpp"
"${ASAR_STATIC_SRC_DIR}/libstr.cpp"
"${ASAR_STATIC_SRC_DIR}/macro.cpp"
"${ASAR_STATIC_SRC_DIR}/main.cpp"
"${ASAR_STATIC_SRC_DIR}/asar_math.cpp"
"${ASAR_STATIC_SRC_DIR}/virtualfile.cpp"
"${ASAR_STATIC_SRC_DIR}/warnings.cpp"
"${ASAR_STATIC_SRC_DIR}/errors.cpp"
"${ASAR_STATIC_SRC_DIR}/platform/file-helpers.cpp"
)
if(WIN32 OR MINGW)
list(APPEND ASAR_STATIC_SRC "${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/platform/windows/file-helpers-win32.cpp")
list(APPEND ASAR_STATIC_SRC "${ASAR_STATIC_SRC_DIR}/platform/windows/file-helpers-win32.cpp")
else()
list(APPEND ASAR_STATIC_SRC "${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar/platform/linux/file-helpers-linux.cpp")
list(APPEND ASAR_STATIC_SRC "${ASAR_STATIC_SRC_DIR}/platform/linux/file-helpers-linux.cpp")
endif()

View File

@@ -11,23 +11,17 @@ set(IMGUI_FILE_DLG_PATH ${CMAKE_SOURCE_DIR}/src/lib/ImGuiFileDialog)
file(GLOB IMGUI_FILE_DLG_SOURCES ${IMGUI_FILE_DLG_PATH}/*.cpp)
add_library("ImGuiFileDialog" STATIC ${IMGUI_FILE_DLG_SOURCES})
target_include_directories(ImGuiFileDialog PUBLIC ${IMGUI_PATH})
target_compile_definitions(ImGuiFileDialog PUBLIC
IMGUI_IMPL_OPENGL_LOADER_CUSTOM=<SDL2/SDL_opengl.h> GL_GLEXT_PROTOTYPES=1)
set(IMGUI_COLOR_TEXT_EDIT_PATH ${CMAKE_SOURCE_DIR}/src/lib/ImGuiColorTextEdit)
file(GLOB IMGUI_COLOR_TEXT_EDIT_SOURCES ${IMGUI_COLOR_TEXT_EDIT_PATH}/*.cpp)
add_library("ImGuiColorTextEdit" STATIC ${IMGUI_COLOR_TEXT_EDIT_SOURCES})
target_include_directories(ImGuiColorTextEdit PUBLIC ${IMGUI_PATH})
target_compile_definitions(ImGuiColorTextEdit PUBLIC
IMGUI_IMPL_OPENGL_LOADER_CUSTOM=<SDL2/SDL_opengl.h> GL_GLEXT_PROTOTYPES=1)
set(IMGUI_TEST_ENGINE_PATH ${CMAKE_SOURCE_DIR}/src/lib/imgui_test_engine/imgui_test_engine)
file(GLOB IMGUI_TEST_ENGINE_SOURCES ${IMGUI_TEST_ENGINE_PATH}/*.cpp)
add_library("ImGuiTestEngine" STATIC ${IMGUI_TEST_ENGINE_SOURCES})
target_include_directories(ImGuiTestEngine PUBLIC ${IMGUI_PATH})
target_link_libraries(ImGuiTestEngine PUBLIC ImGui)
target_compile_definitions(ImGuiTestEngine PUBLIC
IMGUI_IMPL_OPENGL_LOADER_CUSTOM=<SDL2/SDL_opengl.h> GL_GLEXT_PROTOTYPES=1)
set(
IMGUI_SRC

View File

@@ -10,4 +10,7 @@ set(SDL_TARGETS SDL2::SDL2)
if(WIN32 OR MINGW)
list(PREPEND SDL_TARGETS SDL2::SDL2main ws2_32)
add_definitions(-DSDL_MAIN_HANDLED)
endif()
endif()
# libpng
find_package(PNG REQUIRED)

View File

@@ -150,4 +150,18 @@ target_link_libraries(
${CMAKE_DL_LIBS}
ImGuiTestEngine
ImGui
)
)
if (YAZE_INSTALL_CLIB)
install(TARGETS yaze_c
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib/static)
install(
FILES
yaze.h
base/sprite.h
base/snes_color.h
DESTINATION include)
endif()