diff --git a/CMakeLists.txt b/CMakeLists.txt index b2de8027..cb1c7a0d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,73 +11,98 @@ cmake_minimum_required (VERSION 2.8.9) project (boss) -set (BOSS_SRC "${CMAKE_SOURCE_DIR}/src/backend/metadata.cpp" "${CMAKE_SOURCE_DIR}/src/backend/game.cpp" "${CMAKE_SOURCE_DIR}/src/backend/helpers.cpp" "${CMAKE_SOURCE_DIR}/src/backend/network.cpp" "${CMAKE_SOURCE_DIR}/src/backend/globals.cpp" "${CMAKE_SOURCE_DIR}/src/backend/graph.cpp") +set (BOSS_SRC "${CMAKE_SOURCE_DIR}/src/backend/metadata.cpp" + "${CMAKE_SOURCE_DIR}/src/backend/game.cpp" + "${CMAKE_SOURCE_DIR}/src/backend/helpers.cpp" + "${CMAKE_SOURCE_DIR}/src/backend/network.cpp" + "${CMAKE_SOURCE_DIR}/src/backend/globals.cpp" + "${CMAKE_SOURCE_DIR}/src/backend/graph.cpp" + "${PROJECT_LIBS_DIR}/pugixml/src/pugixml.cpp" + "${PROJECT_LIBS_DIR}/boost/libs/iostreams/src/file_descriptor.cpp") -set (BOSS_SRC ${BOSS_SRC} "${PROJECT_LIBS_DIR}/pugixml/src/pugixml.cpp" "${PROJECT_LIBS_DIR}/boost/libs/iostreams/src/file_descriptor.cpp") +set (BOSS_GUI_SRC ${BOSS_SRC} + "${CMAKE_SOURCE_DIR}/src/gui/ids.cpp" + "${CMAKE_SOURCE_DIR}/src/gui/main.cpp" + "${CMAKE_SOURCE_DIR}/src/gui/settings.cpp" + "${CMAKE_SOURCE_DIR}/src/gui/editor.cpp" + "${CMAKE_SOURCE_DIR}/src/gui/viewer.cpp" + "${CMAKE_SOURCE_DIR}/src/resource.rc") + +set (BOSS_API_SRC ${BOSS_SRC} + "${CMAKE_SOURCE_DIR}/src/api/api.cpp") # Include source and library directories. -include_directories ("${PROJECT_LIBS_DIR}/alphanum" "${PROJECT_LIBS_DIR}/boost" "${PROJECT_LIBS_DIR}/yaml-cpp/include" "${CMAKE_SOURCE_DIR}/src" "${PROJECT_LIBS_DIR}/libloadorder/src" "${PROJECT_LIBS_DIR}/libespm" "${PROJECT_LIBS_DIR}/zlib" "${PROJECT_LIBS_DIR}/pugixml/src" "${PROJECT_LIBS_DIR}/wxWidgets/include" "${PROJECT_LIBS_DIR}/libgit2/include") +include_directories ("${CMAKE_SOURCE_DIR}/src" + "${PROJECT_LIBS_DIR}/alphanum" + "${PROJECT_LIBS_DIR}/boost" + "${PROJECT_LIBS_DIR}/yaml-cpp/include" + "${PROJECT_LIBS_DIR}/libloadorder/src" + "${PROJECT_LIBS_DIR}/libespm" + "${PROJECT_LIBS_DIR}/zlib" + "${PROJECT_LIBS_DIR}/pugixml/src" + "${PROJECT_LIBS_DIR}/libgit2/include" + "${PROJECT_LIBS_DIR}/wxWidgets/include" + "${PROJECT_LIBS_DIR}/wxWidgets/lib/wx/include/${COMPILER_PREFIX}-msw-unicode-static-2.9") + +link_directories ("${PROJECT_LIBS_DIR}/yaml-cpp/build" + "${PROJECT_LIBS_DIR}/libloadorder/build" + "${PROJECT_LIBS_DIR}/zlib/build" + "${PROJECT_LIBS_DIR}/libgit2/build" + "${PROJECT_LIBS_DIR}/wxWidgets/lib" + "${PROJECT_LIBS_DIR}/boost/stage-${PROJECT_ARCH}/lib") ############################## -# Platform-Specific Settings +# System-Specific Settings ############################## -# Settings when compiling for Windows. +# Settings when compiling for Windows. Since it's a Windows-only app this is always true, but useful to check for copy/paste into other projects. IF (CMAKE_SYSTEM_NAME MATCHES "Windows") - add_definitions (-DUNICODE -D_UNICODE) - set (BOSS_SRC ${BOSS_SRC} "${CMAKE_SOURCE_DIR}/src/resource.rc") + add_definitions (-DUNICODE -D_UNICODE -DLIBLO_STATIC) IF (${PROJECT_LINK} MATCHES "STATIC") - add_definitions (-DLIBLO_STATIC) add_definitions (-DBOSS_STATIC) ELSE () - add_definitions (-DLIBLO_STATIC) add_definitions (-DBOSS_EXPORT) ENDIF () ENDIF () -# Settings when not cross-compiling. -IF (CMAKE_SYSTEM_NAME MATCHES CMAKE_HOST_SYSTEM_NAME) - link_directories ("${PROJECT_LIBS_DIR}/boost/stage-${PROJECT_ARCH}/lib") -ENDIF () - -link_directories ("${PROJECT_LIBS_DIR}/yaml-cpp/build") -link_directories ("${PROJECT_LIBS_DIR}/libloadorder/build") -link_directories ("${PROJECT_LIBS_DIR}/zlib/build") -link_directories ("${PROJECT_LIBS_DIR}/libgit2/build") -link_directories ("${PROJECT_LIBS_DIR}/wxWidgets/lib") - -# Settings when compiling and cross-compiling on Linux. -IF (CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") +# MinGW settings. +IF (MINGW) set (CMAKE_C_FLAGS "-m${PROJECT_ARCH} -O3") set (CMAKE_CXX_FLAGS "-m${PROJECT_ARCH} -O3") - set (CMAKE_EXE_LINKER_FLAGS "-static-libstdc++ -static-libgcc") - set (CMAKE_SHARED_LINKER_FLAGS "-static-libstdc++ -static-libgcc") - set (CMAKE_MODULE_LINKER_FLAGS "-static-libstdc++ -static-libgcc") - - IF (CMAKE_SYSTEM_NAME MATCHES "Windows") - link_directories ("${PROJECT_LIBS_DIR}/boost/stage-mingw-${PROJECT_ARCH}/lib") - include_directories ("${PROJECT_LIBS_DIR}/wxWidgets/lib/wx/include/i686-w64-mingw32-msw-unicode-static-2.9") - set (BOSS_LIBS ${BOSS_LIBS} version wx_mswu_webview-2.9-i686-w64-mingw32 wx_mswu_core-2.9-i686-w64-mingw32 wx_baseu-2.9-i686-w64-mingw32 wx_mswu_adv-2.9-i686-w64-mingw32 wxpng-2.9-i686-w64-mingw32 wxzlib-2.9-i686-w64-mingw32 comctl32) - set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--subsystem,windows") - ENDIF () - - set (BOSS_LIBS ${BOSS_LIBS} git2 ws2_32 zlibstatic loadorder${PROJECT_ARCH} yaml-cpp boost_log_setup boost_log boost_locale boost_thread_win32 boost_chrono boost_date_time boost_filesystem boost_system boost_regex) + set (CMAKE_EXE_LINKER_FLAGS "-static-libstdc++ -static-libgcc -Wl,--subsystem,windows") + set (CMAKE_SHARED_LINKER_FLAGS "-static-libstdc++ -static-libgcc -Wl,--subsystem,windows") + set (CMAKE_MODULE_LINKER_FLAGS "-static-libstdc++ -static-libgcc -Wl,--subsystem,windows") ENDIF () -# Settings when compiling on Windows. -IF (CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") - set (BOSS_LIBS zlibstatic loadorder yaml-cpp boost_locale-vc110-mt-1_52 libboost_filesystem-vc110-mt-1_52 libboost_system-vc110-mt-1_52) - set (CMAKE_CXX_FLAGS "/EHsc") +# MSVC settings. +IF (MSVC) + set (CMAKE_CXX_FLAGS "/EHsc") + set (BOOST_SUFFIX "-vc110-mt-1_52") ENDIF () -############################## -# More General Settings -############################## - -set (BOSS_GUI_SRC ${BOSS_SRC} "${CMAKE_SOURCE_DIR}/src/gui/ids.cpp" "${CMAKE_SOURCE_DIR}/src/gui/main.cpp" "${CMAKE_SOURCE_DIR}/src/gui/settings.cpp" "${CMAKE_SOURCE_DIR}/src/gui/editor.cpp" "${CMAKE_SOURCE_DIR}/src/gui/viewer.cpp") - -set (BOSS_API_SRC ${BOSS_SRC} "${CMAKE_SOURCE_DIR}/src/api/api.cpp") +set (BOSS_LIBS version + git2 + ws2_32 + zlibstatic + loadorder${PROJECT_ARCH} + yaml-cpp + boost_log_setup${BOOST_SUFFIX} + boost_log${BOOST_SUFFIX} + boost_locale${BOOST_SUFFIX} + boost_thread_win32${BOOST_SUFFIX} + boost_chrono${BOOST_SUFFIX} + boost_date_time${BOOST_SUFFIX} + boost_filesystem${BOOST_SUFFIX} + boost_system${BOOST_SUFFIX} + boost_regex${BOOST_SUFFIX} + wx_mswu_webview-2.9-${COMPILER_PREFIX} + wx_mswu_core-2.9-${COMPILER_PREFIX} + wx_baseu-2.9-${COMPILER_PREFIX} + wx_mswu_adv-2.9-${COMPILER_PREFIX} + wxpng-2.9-${COMPILER_PREFIX} + wxzlib-2.9-${COMPILER_PREFIX} + comctl32) ############################## diff --git a/README.md b/README.md index d1d53786..0cc5e26f 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ echo "using gcc : 4.6.3 : i686-w64-mingw32-g++ : i686-w64-mingw32-windres