mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-16 06:29:56 +00:00
Merge branch 'master' of http://github.com/ardekantur/openmw
This commit is contained in:
commit
2ec96ed7de
7 changed files with 107 additions and 15 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -9,7 +9,7 @@ Makefile
|
||||||
cmake*.cmake
|
cmake*.cmake
|
||||||
Ogre.log
|
Ogre.log
|
||||||
ogre.cfg
|
ogre.cfg
|
||||||
build
|
build*
|
||||||
plugins.cfg
|
plugins.cfg
|
||||||
openmw.cfg
|
openmw.cfg
|
||||||
Doxygen
|
Doxygen
|
||||||
|
|
|
@ -231,6 +231,16 @@ endif (CMAKE_COMPILER_IS_GNUCC)
|
||||||
|
|
||||||
# Main executable
|
# Main executable
|
||||||
add_executable(openmw
|
add_executable(openmw
|
||||||
|
${BSA} ${BSA_HEADER}
|
||||||
|
${TOOLS} ${TOOLS_HEADER}
|
||||||
|
${OGRE} ${OGRE_HEADER}
|
||||||
|
${INPUT} ${INPUT_HEADER}
|
||||||
|
${NIF} ${NIF_HEADER}
|
||||||
|
${NIFOGRE} ${NIFOGRE_HEADER}
|
||||||
|
${MANGLE_VFS}
|
||||||
|
${GAME}
|
||||||
|
${ESM_STORE} ${ESM_STORE_HEADER}
|
||||||
|
${GAMEREND} ${GAMEREND_HEADER}
|
||||||
MACOSX_BUNDLE
|
MACOSX_BUNDLE
|
||||||
${COMPONENTS} ${COMPONENTS_HEADER}
|
${COMPONENTS} ${COMPONENTS_HEADER}
|
||||||
${OPENMW_LIBS} ${OPENMW_LIBS_HEADER}
|
${OPENMW_LIBS} ${OPENMW_LIBS_HEADER}
|
||||||
|
@ -255,17 +265,29 @@ add_subdirectory( apps/clientconsole )
|
||||||
|
|
||||||
# Apple bundling
|
# Apple bundling
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set_source_files_properties(
|
set(MISC_FILES
|
||||||
${CMAKE_SOURCE_DIR}/files/openmw.cfg
|
${CMAKE_SOURCE_DIR}/files/openmw.cfg
|
||||||
${CMAKE_SOURCE_DIR}/files/mac/plugins.cfg
|
${CMAKE_SOURCE_DIR}/files/mac/plugins.cfg
|
||||||
PROPERTIES
|
${CMAKE_SOURCE_DIR}/files/mac/ogre.cfg)
|
||||||
MACOSX_PACKAGE_LOCATION MacOS
|
install(TARGETS openmw
|
||||||
)
|
BUNDLE DESTINATION .
|
||||||
set_target_properties(
|
RUNTIME DESTINATION ../MacOS
|
||||||
openmw
|
COMPONENT Runtime)
|
||||||
PROPERTIES
|
install(FILES ${MISC_FILES} DESTINATION ../MacOS)
|
||||||
MACOSX_BUNDLE_BUNDLE_NAME "OpenMW"
|
set(CPACK_GENERATOR "Bundle")
|
||||||
)
|
set(CPACK_BUNDLE_PLIST "${CMAKE_SOURCE_DIR}/files/mac/Info.plist")
|
||||||
|
set(CPACK_BUNDLE_ICON "${CMAKE_SOURCE_DIR}/files/mac/openmw.icns")
|
||||||
|
set(CPACK_BUNDLE_NAME "OpenMW")
|
||||||
|
set(CPACK_PACKAGE_VERSION "0.07")
|
||||||
|
set(CPACK_PACKAGE_VERSION_MAJOR "0")
|
||||||
|
set(CPACK_PACKAGE_VERSION_MINOR "07")
|
||||||
|
set(CPACK_PACKAGE_VERSION_PATCH "")
|
||||||
|
|
||||||
|
include(CPack)
|
||||||
|
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "-arch i386")
|
||||||
|
set(CMAKE_CXX_FLAGS "-arch i386")
|
||||||
|
|
||||||
endif (APPLE)
|
endif (APPLE)
|
||||||
|
|
||||||
# Tools
|
# Tools
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
#include <boost/program_options.hpp>
|
#include <boost/program_options.hpp>
|
||||||
|
|
||||||
|
#include "tools/fileops.hpp"
|
||||||
#include "engine.hpp"
|
#include "engine.hpp"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
@ -37,10 +38,17 @@ bool parseOptions (int argc, char**argv, OMW::Engine& engine)
|
||||||
|
|
||||||
bpo::variables_map variables;
|
bpo::variables_map variables;
|
||||||
|
|
||||||
std::ifstream configFile ("openmw.cfg");
|
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
||||||
|
std::string configFilePath(macBundlePath() + "/Contents/MacOS/openmw.cfg");
|
||||||
|
std::ifstream configFile (configFilePath.c_str());
|
||||||
|
#else
|
||||||
|
std::ifstream configFile ("openmw.cfg");
|
||||||
|
#endif
|
||||||
|
|
||||||
bpo::store ( bpo::parse_command_line (argc, argv, desc), variables );
|
bpo::parsed_options valid_opts = bpo::command_line_parser(argc, argv).options(desc).allow_unregistered().run();
|
||||||
bpo::notify (variables);
|
|
||||||
|
bpo::store(valid_opts, variables);
|
||||||
|
bpo::notify(variables);
|
||||||
|
|
||||||
if (configFile.is_open())
|
if (configFile.is_open())
|
||||||
bpo::store ( bpo::parse_config_file (configFile, desc), variables);
|
bpo::store ( bpo::parse_config_file (configFile, desc), variables);
|
||||||
|
|
|
@ -1,8 +1,34 @@
|
||||||
#include "fileops.hpp"
|
#include "fileops.hpp"
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
bool isFile(const char *name)
|
bool isFile(const char *name)
|
||||||
{
|
{
|
||||||
boost::filesystem::path cfg_file_path(name);
|
boost::filesystem::path cfg_file_path(name);
|
||||||
return boost::filesystem::exists(cfg_file_path);
|
return boost::filesystem::exists(cfg_file_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
||||||
|
#include <CoreFoundation/CoreFoundation.h>
|
||||||
|
|
||||||
|
std::string macBundlePath()
|
||||||
|
{
|
||||||
|
char path[1024];
|
||||||
|
CFBundleRef mainBundle = CFBundleGetMainBundle();
|
||||||
|
assert(mainBundle);
|
||||||
|
|
||||||
|
CFURLRef mainBundleURL = CFBundleCopyBundleURL(mainBundle);
|
||||||
|
assert(mainBundleURL);
|
||||||
|
|
||||||
|
CFStringRef cfStringRef = CFURLCopyFileSystemPath(mainBundleURL, kCFURLPOSIXPathStyle);
|
||||||
|
assert(cfStringRef);
|
||||||
|
|
||||||
|
CFStringGetCString(cfStringRef, path, 1024, kCFStringEncodingASCII);
|
||||||
|
|
||||||
|
CFRelease(mainBundleURL);
|
||||||
|
CFRelease(cfStringRef);
|
||||||
|
|
||||||
|
return std::string(path);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,7 +1,13 @@
|
||||||
#ifndef __FILEOPS_H_
|
#ifndef __FILEOPS_H_
|
||||||
#define __FILEOPS_H_
|
#define __FILEOPS_H_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
/// Check if a given path is an existing file (not a directory)
|
/// Check if a given path is an existing file (not a directory)
|
||||||
bool isFile(const char *name);
|
bool isFile(const char *name);
|
||||||
|
|
||||||
|
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
||||||
|
std::string macBundlePath();
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
30
files/mac/Info.plist
Normal file
30
files/mac/Info.plist
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>OpenMW.icns</string>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>English</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>openmw</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleLongVersionString</key>
|
||||||
|
<string></string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>OpenMW</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>0.07</string>
|
||||||
|
<key>CSResourcesFileMapped</key>
|
||||||
|
<true/>
|
||||||
|
<key>LSRequiresCarbon</key>
|
||||||
|
<true/>
|
||||||
|
<key>NSHumanReadableCopyright</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
BIN
files/mac/openmw.icns
Normal file
BIN
files/mac/openmw.icns
Normal file
Binary file not shown.
Loading…
Reference in a new issue