diff --git a/CMakeLists.txt b/CMakeLists.txt index 376f148833..78ee33a8bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -342,12 +342,20 @@ link_directories( ${VORBISFILE_LIBRARY_DIRS} ) -list(APPEND UNITTEST_SRC_FOLDERS - src/test) -add_source_folders(UNITTEST UNITTEST_SRC_FOLDERS) +option(BUILD_TESTS "Build pioneer test executables" ON) + +if (BUILD_TESTS) + list(APPEND UNITTEST_SRC_FOLDERS + src/test + ) + add_source_folders(UNITTEST UNITTEST_SRC_FOLDERS) + + add_executable(unittest ${UNITTEST_CXX_FILES}) + target_link_libraries(unittest LINK_PRIVATE ${pioneerLibs} ${winLibs}) + set_cxx_properties(unittest) +endif() add_executable(${PROJECT_NAME} WIN32 src/main.cpp ${RESOURCES}) -add_executable(unittest ${UNITTEST_CXX_FILES}) add_executable(modelcompiler src/modelcompiler.cpp) add_executable(savegamedump src/savegamedump.cpp @@ -406,11 +414,10 @@ endif (WIN32) add_subdirectory(src/editor) target_link_libraries(${PROJECT_NAME} LINK_PRIVATE ${pioneerLibs} ${winLibs}) -target_link_libraries(unittest LINK_PRIVATE ${pioneerLibs} ${winLibs}) target_link_libraries(modelcompiler LINK_PRIVATE ${pioneerLibs} ${winLibs}) target_link_libraries(savegamedump LINK_PRIVATE pioneer-core ${SDL2_IMAGE_LIBRARIES} ${winLibs}) -set_cxx_properties(${PROJECT_NAME} unittest modelcompiler savegamedump) +set_cxx_properties(${PROJECT_NAME} modelcompiler savegamedump) if(MSVC) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD diff --git a/src/lua/LuaTable.h b/src/lua/LuaTable.h index 20411b03b8..a2125acee9 100644 --- a/src/lua/LuaTable.h +++ b/src/lua/LuaTable.h @@ -373,7 +373,7 @@ LuaTable LuaTable::Set(const Key &key, const Value &value) const template LuaTable &LuaTable::PushBack(Value &value) { - pi_lua_generic_push(m_lua, Size() + 1); + pi_lua_generic_push(m_lua, static_cast(Size() + 1)); pi_lua_generic_push(m_lua, value); lua_settable(m_lua, m_index); return *this; @@ -476,4 +476,11 @@ inline void pi_lua_generic_push(lua_State *l, const LuaTable &value) { lua_pushvalue(l, value.GetIndex()); } + +inline void pi_lua_generic_push(lua_State *l, size_t value) +{ + // On macOS ARM64, size_t is 64 bits, so let's just push as uint64_t. + // On 32-bit systems, it's fine too - the cast is safe. + pi_lua_generic_push(l, static_cast(value)); +} #endif