1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-04-11 11:31:52 +02:00

Merge pull request #27 from Mixaill/cmake-2

Make CPack functional on Windows
This commit is contained in:
Ivan Savenko 2014-07-12 14:18:25 +03:00
commit e78491fda2
8 changed files with 45 additions and 13 deletions

View File

@ -16,6 +16,6 @@ set_target_properties(BattleAI PROPERTIES ${PCH_PROPERTIES})
cotire(BattleAI)
if (NOT APPLE) # Already inside vcmiclient bundle
install(TARGETS BattleAI DESTINATION ${AI_LIB_DIR})
install(TARGETS BattleAI RUNTIME DESTINATION ${AI_LIB_DIR} LIBRARY DESTINATION ${AI_LIB_DIR})
endif()

View File

@ -12,5 +12,5 @@ add_library(EmptyAI SHARED ${emptyAI_SRCS})
target_link_libraries(EmptyAI vcmi)
if (NOT APPLE) # Already inside vcmiclient bundle
install(TARGETS EmptyAI DESTINATION ${AI_LIB_DIR})
install(TARGETS EmptyAI RUNTIME DESTINATION ${AI_LIB_DIR} LIBRARY DESTINATION ${AI_LIB_DIR})
endif()

View File

@ -50,4 +50,6 @@ add_library(FuzzyLite_lib STATIC ${FuzzyLite_lib_SRCS})
# all symobls from FuzzyLite exposed to public. This triggers errors
# when library is checked by analizers for issues
# Correct solution is either make FuzzyLite symbols hidden or turn lib into dynamic
SET_TARGET_PROPERTIES(FuzzyLite_lib PROPERTIES COMPILE_FLAGS "-fPIC")
if(NOT WIN32)
SET_TARGET_PROPERTIES(FuzzyLite_lib PROPERTIES COMPILE_FLAGS "-fPIC")
endif()

View File

@ -16,6 +16,6 @@ set_target_properties(StupidAI PROPERTIES ${PCH_PROPERTIES})
cotire(StupidAI)
if (NOT APPLE) # Already inside vcmiclient bundle
install(TARGETS StupidAI DESTINATION ${AI_LIB_DIR})
install(TARGETS StupidAI RUNTIME DESTINATION ${AI_LIB_DIR} LIBRARY DESTINATION ${AI_LIB_DIR})
endif()

View File

@ -19,5 +19,5 @@ set_target_properties(VCAI PROPERTIES ${PCH_PROPERTIES})
cotire(VCAI)
if (NOT APPLE) # Already inside vcmiclient bundle
install(TARGETS VCAI DESTINATION ${AI_LIB_DIR})
install(TARGETS VCAI RUNTIME DESTINATION ${AI_LIB_DIR} LIBRARY DESTINATION ${AI_LIB_DIR})
endif()

View File

@ -66,7 +66,17 @@ if (WIN32)
set(SYSTEM_LIBS ${SYSTEM_LIBS} iconv)
endif()
set(CMAKE_SHARED_LIBRARY_PREFIX "") #delete lib prefix for dlls
#delete lib prefix for dlls
set(CMAKE_SHARED_LIBRARY_PREFIX "")
if(MINGW)
get_filename_component(MINGW_BIN_PATH ${CMAKE_CXX_COMPILER} PATH )
#copy libwinpthread-*.dll, libgcc_s_*.dll and libstdc++-*.dll to VCMI location
set(dep_files ${dep_files} "${MINGW_BIN_PATH}/libwinpthread-*.dll")
set(dep_files ${dep_files} "${MINGW_BIN_PATH}/libgcc_s_*.dll")
set(dep_files ${dep_files} "${MINGW_BIN_PATH}/libstdc++-*.dll")
endif()
endif()
if(APPLE)
@ -128,9 +138,10 @@ endif()
if(CMAKE_COMPILER_IS_GNUCXX OR NOT WIN32) #so far all *nix compilers support such parameters
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CLANG_SPECIFIC_FLAGS "-Wno-mismatched-tags")
set(CLANG_SPECIFIC_FLAGS "-Wno-mismatched-tags -Wno-unknown-warning-option")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wall -Wextra -Wpointer-arith -Wno-switch -Wno-sign-compare -Wno-unused-parameter -Wuninitialized -Wno-overloaded-virtual ${CLANG_SPECIFIC_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wall -Wextra -Wpointer-arith -Wno-strict-aliasing -Wno-switch -Wno-sign-compare -Wno-unused-local-typedefs -Wno-unused-parameter -Wuninitialized -Wno-overloaded-virtual -Wno-type-limits ${CLANG_SPECIFIC_FLAGS}")
if(UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
@ -221,9 +232,28 @@ if (NOT APPLE)
endif()
if(WIN32)
#TODO: install any additional dll's. This version (may be broken) will copy all dll's including H3 ones
#FILE(GLOB dll_files "${CMAKE_BINARY_DIR}/*.dll")
#INSTALL(FILES ${dll_files} DESTINATION ${BIN_DIR})
file(GLOB dep_files
${dep_files}
"${CMAKE_FIND_ROOT_PATH}/bin/*.dll")
if (ENABLE_EDITOR OR ENABLE_LAUNCHER)
get_target_property(QtCore_location Qt5::Core LOCATION)
get_filename_component(Qtbin_folder ${QtCore_location} PATH)
file(GLOB dep_files
${dep_files}
${Qtbin_folder}/Qt5Core.dll
${Qtbin_folder}/Qt5Gui.dll
${Qtbin_folder}/Qt5Widgets.dll
${Qtbin_folder}/icu*.dll)
endif()
if (ENABLE_LAUNCHER)
file(GLOB dep_files
${dep_files}
${Qtbin_folder}/Qt5Network.dll)
endif()
install(FILES ${dep_files} DESTINATION ${BIN_DIR})
elseif(APPLE)
else()
#install icons and desktop file on Linux

View File

@ -143,5 +143,5 @@ set_target_properties(vcmi PROPERTIES ${PCH_PROPERTIES})
cotire(vcmi)
if (NOT APPLE) # Already inside vcmiclient bundle
install(TARGETS vcmi DESTINATION ${LIB_DIR})
install(TARGETS vcmi RUNTIME DESTINATION ${LIB_DIR} LIBRARY DESTINATION ${LIB_DIR})
endif()

View File

@ -16,5 +16,5 @@ set_target_properties(minizip PROPERTIES XCODE_ATTRIBUTE_LD_DYLIB_INSTALL_NAME "
target_link_libraries(minizip ${ZLIB_LIBRARIES})
if (NOT APPLE) # Already inside vcmiclient bundle
install(TARGETS minizip DESTINATION ${LIB_DIR})
install(TARGETS minizip RUNTIME DESTINATION ${LIB_DIR} LIBRARY DESTINATION ${LIB_DIR})
endif()