diff --git a/CMakeLists.txt b/CMakeLists.txt index cf2305e..966ae5c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.11) Project(oneshot) include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup() +conan_basic_setup(TARGETS) ## Setup options ## @@ -14,34 +14,6 @@ option(DEBUG "Debug mode" OFF) set(CMAKE_INCLUDE_CURRENT_DIR ON) -# IF("${CMAKE_SYSTEM}" MATCHES "Linux") -# SET(LINUX ON) -# ENDIF() - -set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12) - -# IF(LINUX) -# if(CMAKE_SIZEOF_VOID_P MATCHES "8" AND NOT(FORCE32) ) -# set(CMAKE_EXECUTABLE_SUFFIX ".bin.x86_64") -# set(BIN_RPATH "\$ORIGIN/lib64") -# set(LIB_PATH "lib64") -# else() -# set(CMAKE_EXECUTABLE_SUFFIX ".bin.x86") -# set(BIN_RPATH "\$ORIGIN/lib") -# set(LIB_PATH "lib") -# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_FILE_OFFSET_BITS=64") -# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FILE_OFFSET_BITS=64") -# endif() -# elseif(APPLE) -# SET(BIN_RPATH "@executable_path/../Frameworks") -# set(LIB_PATH "lib") -# endif() - -# set(CMAKE_SKIP_BUILD_RPATH TRUE) -# set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) -# set(CMAKE_INSTALL_RPATH ${BIN_RPATH}) -# set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE) - ## Setup main source ## set(MAIN_HEADERS @@ -308,46 +280,29 @@ add_executable(${PROJECT_NAME} MACOSX_BUNDLE WIN32 target_compile_definitions(${PROJECT_NAME} PRIVATE ${DEFINES}) target_include_directories(${PROJECT_NAME} PRIVATE src) -target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS} ${PLATFORM_LIBRARIES}) +target_link_libraries(${PROJECT_NAME} + CONAN_PKG::boost + CONAN_PKG::openal + CONAN_PKG::physfs + CONAN_PKG::pixman + CONAN_PKG::ruby + CONAN_PKG::sdl2 + CONAN_PKG::sdl2_image + CONAN_PKG::sdl2_ttf + CONAN_PKG::sdl_sound-mkxp + CONAN_PKG::sigc++ + ${PLATFORM_LIBRARIES}) IF(APPLE) add_custom_command(TARGET ${target} POST_BUILD COMMAND cmake -P "${CMAKE_SOURCE_DIR}/patches/mac/CompleteBundle.cmake" VERBATIM) ENDIF() -# Steamshim -IF(STEAM) - IF(NOT WIN32) - set(STEAMSHIM_SOURCES - steamshim_parent/steamshim_parent.cpp - ) +if(STEAM) + add_subdirectory(steamshim_parent) - include_directories(${STEAMWORKS_PATH}/public) - - add_definitions(-DGAME_LAUNCH_NAME="${GAME_LAUNCH_NAME}") - - IF(DEBUG) - add_definitions(-DSTEAMSHIM_DEBUG) - ENDIF() - - IF(APPLE) - link_directories(${STEAMWORKS_PATH}/redistributable_bin/osx32) - ELSEIF(WIN32) - list(APPEND STEAMSHIM_SOURCES steamshim_parent/resources.rc) - link_directories(${STEAMWORKS_PATH}/redistributable_bin/win64) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows") - ELSEIF(LINUX) - link_directories(${STEAMWORKS_PATH}/redistributable_bin/linux64) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64") - ENDIF() - - add_executable(steamshim - ${STEAMSHIM_SOURCES} - ) - - IF(WIN32) - target_link_libraries(steamshim steam_api64) - ELSE() - target_link_libraries(steamshim steam_api) - ENDIF() - ENDIF() -ENDIF() + # steam_appid.txt + configure_file( + "${CMAKE_SOURCE_DIR}/steam_appid.txt" + "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/steam_appid.txt" + COPYONLY) +endif() diff --git a/conanfile.py b/conanfile.py index 255a1b5..2863e37 100644 --- a/conanfile.py +++ b/conanfile.py @@ -3,7 +3,7 @@ import os.path class MkxpConan(ConanFile): - name = "mkxp" + name = "oneshot" version = "0.0.0" license = "GPLv2" url = "https://github.com/elizagamedev/mkxp-oneshot" @@ -14,7 +14,7 @@ class MkxpConan(ConanFile): requires = ( "boost/1.68.0@conan/stable", "openal/1.18.2@bincrafters/stable", - "physfs/3.0.1@eliza/stable", + "physfs/stable-3.0@eliza/stable", "pixman/0.34.0@bincrafters/stable", "ruby/2.3.7@eliza/stable", "sdl2/2.0.8@bincrafters/stable", @@ -36,6 +36,10 @@ class MkxpConan(ConanFile): if tools.os_info.is_windows: self.build_requires("cygwin_installer/2.9.0@bincrafters/stable") + def requirements(self): + if self.options.platform == "steam": + self.requires("steamworks/1.42@eliza/stable") + def build_configure(self): cmake = CMake(self) if self.options.platform == "steam": diff --git a/src/filesystem.cpp b/src/filesystem.cpp index 69b51dd..24ca592 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -470,7 +470,7 @@ fontSetEnumCB (void *data, const char *dir, const char *fname) const char *ext = findExt(fname); if (!ext) - return PHYSFS_ENUM_STOP; + return PHYSFS_ENUM_OK; char lowExt[8]; size_t i; @@ -480,7 +480,7 @@ fontSetEnumCB (void *data, const char *dir, const char *fname) lowExt[i] = '\0'; if (strcmp(lowExt, "ttf") && strcmp(lowExt, "otf") && strcmp(lowExt, "ttc")) - return PHYSFS_ENUM_STOP; + return PHYSFS_ENUM_OK; char filename[512]; snprintf(filename, sizeof(filename), "%s/%s", dir, fname); @@ -500,31 +500,11 @@ fontSetEnumCB (void *data, const char *dir, const char *fname) return PHYSFS_ENUM_OK; } -/* Basically just a case-insensitive search - * for the folder "Fonts"... */ -static PHYSFS_EnumerateCallbackResult -findFontsFolderCB(void *data, const char *, const char *fname) -{ - size_t i = 0; - char buffer[512]; - const char *s = fname; - - while (s && i < sizeof(buffer)) - buffer[i++] = tolower(*s++); - - buffer[i] = '\0'; - - if (strcmp(buffer, "fonts") == 0) - PHYSFS_enumerate(fname, fontSetEnumCB, data); - - return PHYSFS_ENUM_OK; -} - void FileSystem::initFontSets(SharedFontState &sfs) { FontSetsCBData d = { p, &sfs }; - PHYSFS_enumerate("", findFontsFolderCB, &d); + PHYSFS_enumerate("Fonts", fontSetEnumCB, &d); } struct OpenReadEnumData diff --git a/steamshim_parent/CMakeLists.txt b/steamshim_parent/CMakeLists.txt index 3c25ad2..59803e5 100644 --- a/steamshim_parent/CMakeLists.txt +++ b/steamshim_parent/CMakeLists.txt @@ -1,38 +1,18 @@ -cmake_minimum_required(VERSION 2.8.11) +add_executable(steamshim WIN32 + steamshim_parent.cpp) -set(STEAMWORKS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../steamworks" CACHE PATH "Path to Steamworks folder") -set(GAME_LAUNCH_NAME "oneshot" CACHE STRING "Game launch name") -option(DEBUG "Debug mode" OFF) +target_compile_definitions(steamshim PRIVATE + -DGAME_LAUNCH_NAME="oneshot") -set(SOURCES - steamshim_parent.cpp -) +if(DEBUG) + target_compile_definitions(steamshim PRIVATE + -DSTEAMSHIM_DEBUG) +endif() -include_directories(${STEAMWORKS_PATH}/public) +if(WIN32) + target_sources(steamshim PRIVATE + resources.rc) +endif() -add_definitions(-DGAME_LAUNCH_NAME="${GAME_LAUNCH_NAME}") - -IF(DEBUG) - add_definitions(-DSTEAMSHIM_DEBUG) -ENDIF() - -IF(APPLE) - link_directories(${STEAMWORKS_PATH}/redistributable_bin/osx32) -ELSEIF(WIN32) - list(APPEND SOURCES resources.rc) - link_directories(${STEAMWORKS_PATH}/redistributable_bin/win64) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows") -ELSEIF(LINUX) - link_directories(${STEAMWORKS_PATH}/redistributable_bin/linux64) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64") -ENDIF() - -add_executable(steamshim - ${SOURCES} -) - -IF(WIN32) - target_link_libraries(steamshim steam_api64) -ELSE() - target_link_libraries(steamshim steam_api) -ENDIF() +target_link_libraries(steamshim PRIVATE + CONAN_PKG::steamworks) diff --git a/steamshim_parent/old.Makefile b/steamshim_parent/old.Makefile deleted file mode 100644 index 7800230..0000000 --- a/steamshim_parent/old.Makefile +++ /dev/null @@ -1,45 +0,0 @@ -TARGET := steamshim -GAME_LAUNCH_NAME ?= oneshot - -CXX ?= clang++ -WINDRES ?= windres -HOST ?= linux64 -FLAGS := -I$(STEAMWORKS)/public -DGAME_LAUNCH_NAME=\"$(GAME_LAUNCH_NAME)\" -Wall -DEBUG ?= 0 - -ifeq ($(HOST),w32) - FLAGS += -L$(STEAMWORKS)/redistributable_bin -else ifeq ($(HOST),linux32) - FLAGS += -L$(STEAMWORKS)/redistributable_bin/linux32 -m32 -else ifeq ($(HOST),linux64) - FLAGS += -L$(STEAMWORKS)/redistributable_bin/linux64 -m64 -else ifeq ($(HOST),osx) - FLAGS += -L$(STEAMWORKS)/redistributable_bin/osx32 -endif - -FLAGS += -lsteam_api - -ifeq ($(DEBUG),1) - FLAGS += -DSTEAMSHIM_DEBUG -else ifeq ($(HOST),w32) - FLAGS += -mwindows -endif - -SRC := steamshim_parent.cpp -RES := resources.rc -RESOBJ := resources.o - -ifeq ($(HOST),w32) -$(TARGET).exe: $(SRC) $(RESOBJ) - $(CXX) $^ -o $@ $(FLAGS) -$(RESOBJ): $(RES) - $(WINDRES) $< $@ -else -$(TARGET): $(SRC) - $(CXX) $^ -o $@ $(FLAGS) -endif - -clean: - rm -f $(TARGET) $(TARGET).exe $(RESOBJ) - -.PHONY: clean