1- cmake_minimum_required (VERSION 3.12 )
2- project (Better-Inventory CXX ASM_NASM )
3- include (FetchContent )
4-
5- # Mod Options
1+ project (Atlas CXX ASM_NASM )
62set (MOD_VERSION "1.6.0" )
3+ set (MOD_AUTHOR "FrederoxDev" )
74
8- # Amethyst Minecraft Folder
9- set (AmethystFolder "$ENV{localappdata} /Packages/Microsoft.MinecraftUWP_8wekyb3d8bbwe/LocalState/games/com.mojang/amethyst/" )
10-
11- # Configure to build within the Amethyst Folder
12- configure_file (mod.json.in "${AmethystFolder} /mods/${PROJECT_NAME} @${MOD_VERSION} /mod.json" @ONLY )
13- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${AmethystFolder} /mods/${PROJECT_NAME} @${MOD_VERSION} " )
14-
15- # Compiler Options
16- set (CMAKE_CXX_STANDARD 23)
17- set (CMAKE_CONFIGURATION_TYPES "RelWithDebInfo" CACHE STRING "Build configurations" FORCE )
185set (CMAKE_CXX_STANDARD_REQUIRED ON )
196set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /await" )
207
8+ # Amethyst Minecraft Folder
9+ if (CI_CD_BUILD)
10+ configure_file (mod.json.in "${CMAKE_SOURCE_DIR} /dist/${PROJECT_NAME} @${MOD_VERSION} /mod.json" @ONLY )
11+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_SOURCE_DIR} /dist/${PROJECT_NAME} @${MOD_VERSION} " )
12+ set (AMETHYST_SRC "${CMAKE_SOURCE_DIR} /amethyst" )
13+ else ()
14+ set (AmethystFolder "$ENV{localappdata} /Packages/Microsoft.MinecraftUWP_8wekyb3d8bbwe/LocalState/games/com.mojang/amethyst/" )
15+ configure_file (mod.json.in "${AmethystFolder} /mods/${PROJECT_NAME} @${MOD_VERSION} /mod.json" @ONLY )
16+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${AmethystFolder} /mods/${PROJECT_NAME} @${MOD_VERSION} " )
17+ set (AMETHYST_SRC "$ENV{amethyst_src} /amethyst" )
18+ endif ()
19+
20+ # Define only RelWithDebInfo as the available build configuration
21+ set (CMAKE_CXX_STANDARD 23)
2122set_property (GLOBAL PROPERTY USE_FOLDERS ON )
23+ set (CMAKE_CONFIGURATION_TYPES "RelWithDebInfo" CACHE STRING "Build configurations" FORCE )
2224set (CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build, options are: RelWithDebInfo" FORCE )
2325
24- # Make the Mod
26+ # Project Files
2527file (GLOB_RECURSE ${PROJECT_NAME} _All
26- ${CMAKE_CURRENT_SOURCE_DIR} /src/*.cpp
27- ${CMAKE_CURRENT_SOURCE_DIR} /src/*.c
28- ${CMAKE_CURRENT_SOURCE_DIR} /src/*.asm
29- ${CMAKE_CURRENT_SOURCE_DIR} /src/*.hpp
30- ${CMAKE_CURRENT_SOURCE_DIR} /src/*.h
31- )
28+ ${CMAKE_CURRENT_SOURCE_DIR} /src/*.cpp
29+ ${CMAKE_CURRENT_SOURCE_DIR} /src/*.c
30+ ${CMAKE_CURRENT_SOURCE_DIR} /src/*.asm
31+ ${CMAKE_CURRENT_SOURCE_DIR} /src/*.hpp
32+ ${CMAKE_CURRENT_SOURCE_DIR} /src/*.h
33+ )
3234
3335add_library (${PROJECT_NAME} SHARED ${${PROJECT_NAME}_All} )
3436
35- target_include_directories (${PROJECT_NAME} PUBLIC
36- ${CMAKE_CURRENT_SOURCE_DIR} /src
37- )
37+ # Pass mod options to the source code
38+ target_compile_definitions (${PROJECT_NAME} PRIVATE MOD_VERSION= "${MOD_VERSION} " )
39+ target_compile_definitions (${PROJECT_NAME} PRIVATE MOD_AUTHOR= "${MOD_AUTHOR} " )
40+ target_compile_definitions (${PROJECT_NAME} PRIVATE MOD_NAME= "${PROJECT_NAME} " )
3841
39- target_link_libraries (${PROJECT_NAME} PRIVATE
40- AmethystAPI
41- libhat
42- $ENV{amethyst_src} /AmethystAPI/lib/fmt.lib
42+ # Link libraries
43+ target_link_libraries (${PROJECT_NAME} PRIVATE
44+ AmethystAPI
45+ libhat
46+ ${AMETHYST_SRC} /AmethystAPI/lib/fmt.lib
4347)
4448
49+ # Enable multi processor compilation for C++, to make it go brrrrrr
4550target_compile_options (${PROJECT_NAME} PRIVATE
46- $<$<COMPILE_LANGUAGE :CXX >:/MP >
51+ $<$<COMPILE_LANGUAGE :CXX >:/MP >
4752)
4853
4954# EnTT Config Options
5055target_compile_definitions (${PROJECT_NAME} PUBLIC ENTT_PACKED_PAGE=128 )
5156
52- # Get the AmethystAPI Lib.
53- add_subdirectory ("$ENV{amethyst_src } /AmethystAPI" "build" )
57+ # Get the AmethystAPI Lib
58+ add_subdirectory ("${AMETHYST_SRC } /AmethystAPI" "build" )
0 commit comments