Przeglądaj źródła

CMake: structure changes and other small improvements

- Now cmake_minimum_required used properly and set to 2.8.12
- cmake_modules/CMakeCPackOptions.cmake.in is removed
Arseniy Shestakov 8 lat temu
rodzic
commit
2b3a467728

+ 13 - 5
AI/CMakeLists.txt

@@ -1,3 +1,7 @@
+#######################################
+#        FuzzyLite support            #
+#######################################
+
 option(FORCE_BUNDLED_FL "Force to use FuzzyLite included into VCMI's source tree" OFF)
 
 if(NOT FORCE_BUNDLED_FL)
@@ -10,10 +14,14 @@ if(NOT FL_FOUND)
     set(FL_BUILD_BINARY OFF CACHE BOOL "")
     set(FL_BUILD_SHARED OFF CACHE BOOL "")
 	set(FL_BUILD_TESTS OFF CACHE BOOL "")
-	add_subdirectory_with_folder("AI" FuzzyLite/fuzzylite EXCLUDE_FROM_ALL)
+	add_subdirectory(FuzzyLite/fuzzylite EXCLUDE_FROM_ALL)
 endif()
 
-add_subdirectory_with_folder("AI" BattleAI)
-add_subdirectory_with_folder("AI" StupidAI)
-add_subdirectory_with_folder("AI" EmptyAI)
-add_subdirectory_with_folder("AI" VCAI)
+#######################################
+#        Add subdirectories           #
+#######################################
+
+add_subdirectory(BattleAI)
+add_subdirectory(StupidAI)
+add_subdirectory(EmptyAI)
+add_subdirectory(VCAI)

+ 113 - 82
CMakeLists.txt

@@ -1,15 +1,32 @@
+# Minimum required version greatly affect CMake behavior
+# So cmake_minimum_required must be called before the project()
+# 2.8.12 is used since it's present in Ubuntu 14.04 and Cotire require it
+cmake_minimum_required(VERSION 2.8.12)
+
 project(VCMI)
 # TODO
-# - macOS: there is problem with running fixup_bundle in main project after subdirectories.
+# macOS:
+# - There is problem with running fixup_bundle in main project after subdirectories.
 # Cmake put them after all install code of main CMakelists in cmake_install.cmake
 # Currently I just added extra add_subdirectory and CMakeLists.txt in osx directory to bypass that.
-# - macOS: fix install with built-in minizip
-# - macOS: try to fix build with RPATH.
+# - Try to fix build with RPATH.
 # Currently if CMAKE_MACOSX_RPATH=1 then AI libs unable to find @rpath/libvcmi.dylib
 # I tried to set few different INSTALL_RPATH for all targets in AI directory, but nothing worked.
-# - build: cleanup remove_directory copy_directory mess.
-# When I was trying to fix it copy_if_different failed to work for me.
-# - build: and find a way to move add_custom_command for assets deploy out of "lib/CMakeLists.txt"
+#
+# MXE:
+# - Try to implement MXE support into BundleUtilities so we can deploy deps automatically
+#
+# Other:
+# - Cleanup remove_directory copy_directory if performance will be a problem.
+# We can use some macro over copy_if_different since it's only work for single file.
+# - Find a way to move add_custom_command for assets deploy out of "lib/CMakeLists.txt"
+# - Consider to remove M_DATA_DIR, DM_BIN_DIR, DM_LIB_DIR and not use them in code as well
+# - Try to get rid of FOLDER override with define_property
+# It's used currently to make sure that 3rd-party dependencies in git submodules get proper FOLDER property
+
+############################################
+#        User-provided options             #
+############################################
 
 if(NOT CMAKE_BUILD_TYPE)
 	set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
@@ -18,9 +35,6 @@ if(NOT CMAKE_BUILD_TYPE)
 	set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo)
 endif()
 
-set(CMAKE_MODULE_PATH ${CMAKE_HOME_DIRECTORY}/cmake_modules)
-include(VCMIUtils)
-
 set(VCMI_VERSION_MAJOR 0)
 set(VCMI_VERSION_MINOR 99)
 set(VCMI_VERSION_PATCH 0)
@@ -37,23 +51,42 @@ option(ENABLE_MONOLITHIC_INSTALL "Install everything in single directory on Linu
 set(PACKAGE_NAME_SUFFIX "" CACHE STRING "Suffix for CPack package name")
 set(PACKAGE_FILE_NAME "" CACHE STRING "Override for CPack package filename")
 
-if(ENABLE_PCH)
-	# Cotire require CMake 2.8.12
-	cmake_minimum_required(VERSION 2.8.12)
-elseif(ENABLE_LAUNCHER)
-	# Some of Qt5 linking policies require 2.8.11
-	cmake_minimum_required(VERSION 2.8.11)
-elseif(ENABLE_TEST)
-	# For whatever reason test requirement is 2.8.7
-	cmake_minimum_required(VERSION 2.8.7)
-else()
-	cmake_minimum_required(VERSION 2.6)
-endif()
+############################################
+#        Miscellaneous options             #
+############################################
 
-# Find better place for this
-if(APPLE)
-	set(CMAKE_MACOSX_RPATH 0)
-endif()
+set(CMAKE_MODULE_PATH ${CMAKE_HOME_DIRECTORY}/cmake_modules)
+# Contains custom functions and macros, but don't altering any options
+include(VCMIUtils)
+
+# Options to enable folders in CMake generated projects for Visual Studio, Xcode, etc
+# Very useful to put 3rd-party libraries such as Minizip, GoogleTest and FuzzyLite in their own folders
+set_property(GLOBAL PROPERTY USE_FOLDERS TRUE)
+# Make FOLDER property inheritable
+# So when we set FOLDER property on AI directory all and targets inside will inherit it
+#
+# Important! This trick depend on undefined behavior since we override CMake own property.
+# In same time define_property documentation states it's function for custom properties.
+define_property(
+	TARGET
+	PROPERTY FOLDER
+	INHERITED
+	BRIEF_DOCS "Set the folder name."
+	FULL_DOCS  "Use to organize targets in an IDE."
+)
+
+# Generate Version.cpp
+include(GetGitRevisionDescription)
+get_git_head_revision(GIT_REFSPEC GIT_SHA1)
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Version.cpp.in" "${CMAKE_BINARY_DIR}/Version.cpp" @ONLY)
+
+# Precompiled header configuration
+include(cotire)
+set(PCH_PROPERTIES
+	COTIRE_ENABLE_PRECOMPILED_HEADER ${ENABLE_PCH}
+	COTIRE_ADD_UNITY_BUILD FALSE
+	COTIRE_CXX_PREFIX_HEADER_INIT "StdInc.h"
+)
 
 ############################################
 #        Documentation section             #
@@ -62,56 +95,65 @@ endif()
 include(UseDoxygen OPTIONAL)
 
 ############################################
-#        Building section                  #
+#        Compile and linking options       #
 ############################################
 
+if(APPLE)
+	set(CMAKE_MACOSX_RPATH 0)
+endif(APPLE)
+
 if(WIN32)
 	add_definitions(-DBOOST_THREAD_USE_LIB)
 	# Windows Vista or newer for FuzzyLite 6 to compile
 	add_definitions(-D_WIN32_WINNT=0x0600)
-	set(SYSTEM_LIBS ${SYSTEM_LIBS} ole32 oleaut32 ws2_32 mswsock dbghelp)
 
 	#delete lib prefix for dlls (libvcmi -> vcmi)
 	set(CMAKE_SHARED_LIBRARY_PREFIX "")
 
-	if(MINGW)
-		#MinGW: check for iconv (may be needed for boost.locale)
-		#include(CheckLibraryExists)
-		#check_library_exists(iconv libiconv_open "" ICONV_FOUND)
-		#if(ICONV_FOUND)
-		#	set(SYSTEM_LIBS ${SYSTEM_LIBS} iconv)
-		#endif()
-
-		#MinGW: use O1 to prevent compiler crash in some cases
-		#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O1")
-	endif()
-
 	if(MSVC)
-		#MSVC: Fix problems with linking
 		add_definitions(-DBOOST_ALL_NO_LIB)
 		set(Boost_USE_STATIC_LIBS OFF)
 
-		#MSVC: Don't link with SDLMain
+		# Don't link with SDLMain
 		#set(SDL2_BUILDING_LIBRARY ON)
 
-		#MSVC: Suppress warnings
+		# Suppress warnings
 		add_definitions(-D_CRT_SECURE_NO_WARNINGS)
 		add_definitions(-D_SCL_SECURE_NO_WARNINGS)
 		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj /wd4251")
 	endif()
 endif(WIN32)
 
+if(CMAKE_COMPILER_IS_GNUCXX OR NOT WIN32) #so far all *nix compilers support such parameters
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wall -Wextra -Wpointer-arith -Wuninitialized")
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-strict-aliasing -Wno-switch -Wno-sign-compare -Wno-unused-local-typedefs")
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter -Wno-overloaded-virtual -Wno-type-limits -Wno-unknown-pragmas")
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder")
+
+	if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-mismatched-tags -Wno-unknown-warning-option")
+	endif()
+
+	if(UNIX)
+		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
+	endif()
+endif()
+
+# Check if some platform-specific libraries are needed for linking
 if(NOT WIN32)
 	include(CheckLibraryExists)
 
-	#check if some platform-specific libraries are needed for linking
+	# Shared memory functions used by boost::interprocess
+	# FindBoost handle linking with pthreads, but doesn't handle this
 	CHECK_LIBRARY_EXISTS(rt shm_open "" HAVE_RT_LIB)
 	if(HAVE_RT_LIB)
 		set(SYSTEM_LIBS ${SYSTEM_LIBS} rt)
 	endif()
 endif()
 
-set(SYSTEM_LIBS ${SYSTEM_LIBS} ${CMAKE_DL_LIBS})
+############################################
+#        Finding packages                  #
+############################################
 
 set(FFmpeg_FIND_COMPONENTS AVFORMAT SWSCALE)
 find_package(Boost 1.48.0 COMPONENTS date_time filesystem locale program_options system thread REQUIRED)
@@ -119,7 +161,7 @@ find_package(ZLIB REQUIRED)
 find_package(FFmpeg REQUIRED)
 find_package(Minizip)
 if(MINIZIP_FOUND)
-    add_definitions(-DUSE_SYSTEM_MINIZIP)
+	add_definitions(-DUSE_SYSTEM_MINIZIP)
 endif()
 
 find_package(SDL2 REQUIRED)
@@ -127,35 +169,15 @@ find_package(SDL2_image REQUIRED)
 find_package(SDL2_mixer REQUIRED)
 find_package(SDL2_ttf REQUIRED)
 
-set(SDL_INCLUDE_DIR "${SDL2_INCLUDE_DIR}")
-set(SDLTTF_INCLUDE_DIR "${SDL2_TTF_INCLUDE_DIR}")
-set(SDLIMAGE_INCLUDE_DIR "${SDL2_IMAGE_INCLUDE_DIR}")
-set(SDLMIXER_INCLUDE_DIR "${SDL2_MIXER_INCLUDE_DIR}")
-set(SDL_LIBRARY "${SDL2_LIBRARY}")
-set(SDLTTF_LIBRARY "${SDL2_TTF_LIBRARY}")
-set(SDLIMAGE_LIBRARY "${SDL2_IMAGE_LIBRARY}")
-set(SDLMIXER_LIBRARY "${SDL2_MIXER_LIBRARY}")
-
-include(cotire)
-
 if(ENABLE_LAUNCHER)
 	# Widgets finds its own dependencies (QtGui and QtCore).
 	find_package(Qt5Widgets REQUIRED)
 	find_package(Qt5Network REQUIRED)
 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 -Wno-unknown-warning-option")
-	endif()
-
-	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 -Wno-unknown-pragmas -Wno-reorder ${CLANG_SPECIFIC_FLAGS}")
-
-	if(UNIX)
-		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
-	endif()
-
-endif()
+############################################
+#        Output directories                #
+############################################
 
 if(WIN32) # on Win everything goes into H3 root directory
 	set(BIN_DIR "." CACHE STRING "Where to install binaries")
@@ -208,12 +230,9 @@ add_definitions(-DM_DATA_DIR="${CMAKE_INSTALL_PREFIX}/${DATA_DIR}")
 add_definitions(-DM_BIN_DIR="${CMAKE_INSTALL_PREFIX}/${BIN_DIR}")
 add_definitions(-DM_LIB_DIR="${CMAKE_INSTALL_PREFIX}/${LIB_DIR}")
 
-# precompiled header configuration
-set(PCH_PROPERTIES
-	COTIRE_ENABLE_PRECOMPILED_HEADER ${ENABLE_PCH}
-	COTIRE_ADD_UNITY_BUILD FALSE
-	COTIRE_CXX_PREFIX_HEADER_INIT "StdInc.h"
-)
+#######################################
+#        Add subdirectories           #
+#######################################
 
 if(ENABLE_ERM)
 	add_subdirectory(scripting/erm)
@@ -276,8 +295,7 @@ set(CPACK_PACKAGE_VENDOR "VCMI team")
 
 if(WIN32)
 	set(CPACK_MONOLITHIC_INSTALL 1)
-	set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/license.txt")
-	set(CPACK_PACKAGE_EXECUTABLES "VCMI_launcher;VCMI")
+	set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/license.txt")
 	set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}")
 	if("${PACKAGE_NAME_SUFFIX}" STREQUAL "")
 		set(CPACK_NSIS_PACKAGE_NAME "VCMI ${CPACK_PACKAGE_VERSION}")
@@ -286,14 +304,31 @@ if(WIN32)
 	endif()
 	set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
 	if(ENABLE_LAUNCHER)
+		set(CPACK_PACKAGE_EXECUTABLES "VCMI_launcher;VCMI")
 		set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS " CreateShortCut \\\"$DESKTOP\\\\VCMI.lnk\\\" \\\"$INSTDIR\\\\VCMI_launcher.exe\\\"")
 	else()
+		set(CPACK_PACKAGE_EXECUTABLES "VCMI_client;VCMI")
 		set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS " CreateShortCut \\\"$DESKTOP\\\\VCMI.lnk\\\" \\\"$INSTDIR\\\\VCMI_client.exe\\\"")
 	endif()
 	set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS " Delete \\\"$DESKTOP\\\\VCMI.lnk\\\" ")
 
-	configure_file("${CMAKE_SOURCE_DIR}/cmake_modules/CMakeCPackOptions.cmake.in" "${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake" @ONLY)
-	set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake")
+	# set the install/unistall icon used for the installer itself
+	# There is a bug in NSI that does not handle full unix paths properly.
+	set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/client\\vcmi.ico")
+	set(CPACK_NSIS_MUI_UNIICON "${CMAKE_CURRENT_SOURCE_DIR}/client\\vcmi.ico")
+	# set the package header icon for MUI
+	set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/client\\vcmi.ico")
+
+	set(CPACK_NSIS_MENU_LINKS "http://vcmi.eu/" "VCMI Web Site")
+
+	set(CPACK_NSIS_INSTALLED_ICON_NAME "VCMI_client.exe")
+	set(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
+	set(CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_PACKAGE_NAME}, open-source engine for Heroes of Might and Magic III ")
+	set(CPACK_NSIS_HELP_LINK "http://vcmi.eu/")
+	set(CPACK_NSIS_URL_INFO_ABOUT "http://vcmi.eu/")
+	set(CPACK_NSIS_CONTACT @CPACK_PACKAGE_CONTACT@)
+	set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
+
 elseif(APPLE AND NOT ENABLE_MONOLITHIC_INSTALL)
 	set(CPACK_MONOLITHIC_INSTALL 1)
 	set(CPACK_GENERATOR "DragNDrop")
@@ -320,8 +355,4 @@ else()
 	set(CPACK_GENERATOR TGZ)
 endif()
 
-include(GetGitRevisionDescription)
-get_git_head_revision(GIT_REFSPEC GIT_SHA1)
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Version.cpp.in" "${CMAKE_BINARY_DIR}/Version.cpp" @ONLY)
-
 include(CPack)

+ 5 - 3
client/CMakeLists.txt

@@ -1,5 +1,5 @@
 include_directories(${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_HOME_DIRECTORY}/lib)
-include_directories(${SDL_INCLUDE_DIR} ${SDLIMAGE_INCLUDE_DIR} ${SDLMIXER_INCLUDE_DIR} ${SDLTTF_INCLUDE_DIR})
+include_directories(${SDL2_INCLUDE_DIR} ${SDL2_IMAGE_INCLUDE_DIR} ${SDL2_MIXER_INCLUDE_DIR} ${SDL2_TTF_INCLUDE_DIR})
 include_directories(${Boost_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR} ${FFMPEG_INCLUDE_DIRS})
 
 set(client_SRCS
@@ -136,8 +136,10 @@ if(WIN32)
 	target_link_libraries(vcmiclient ${SDLMAIN_LIBRARY})
 endif()
 
-target_link_libraries(vcmiclient vcmi ${Boost_LIBRARIES} ${SDL_LIBRARY} ${SDLIMAGE_LIBRARY} ${SDLMIXER_LIBRARY} ${SDLTTF_LIBRARY} ${ZLIB_LIBRARIES} ${FFMPEG_LIBRARIES} ${FFMPEG_EXTRA_LINKING_OPTIONS} ${SYSTEM_LIBS})
-
+target_link_libraries(vcmiclient vcmi ${Boost_LIBRARIES}
+	${SDL2_LIBRARY} ${SDL2_IMAGE_LIBRARY} ${SDL2_MIXER_LIBRARY} ${SDL2_TTF_LIBRARY}
+	${ZLIB_LIBRARIES} ${FFMPEG_LIBRARIES} ${FFMPEG_EXTRA_LINKING_OPTIONS} ${SYSTEM_LIBS}
+)
 vcmi_set_output_dir(vcmiclient "")
 
 set_target_properties(vcmiclient PROPERTIES ${PCH_PROPERTIES})

+ 0 - 26
cmake_modules/CMakeCPackOptions.cmake.in

@@ -1,26 +0,0 @@
-# This file is configured at cmake time, and loaded at cpack time.
-# To pass variables to cpack from cmake, they must be configured
-# in this file.
-
-if(CPACK_GENERATOR MATCHES "NSIS")
-	set(CPACK_NSIS_INSTALL_ROOT "@CPACK_NSIS_INSTALL_ROOT@")
-
-	# set the install/unistall icon used for the installer itself
-	# There is a bug in NSI that does not handle full unix paths properly.
-	set(CPACK_NSIS_MUI_ICON "@CMAKE_SOURCE_DIR@/client\\vcmi.ico")
-	set(CPACK_NSIS_MUI_UNIICON "@CMAKE_SOURCE_DIR@/client\\vcmi.ico")
-	# set the package header icon for MUI
-	set(CPACK_PACKAGE_ICON "@CMAKE_SOURCE_DIR@/client\\vcmi.ico")
-
-	set(CPACK_NSIS_MENU_LINKS 
-		"http://vcmi.eu/" "VCMI Web Site")
-
-	set(CPACK_NSIS_INSTALLED_ICON_NAME "VCMI_client.exe")
-	set(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
-	set(CPACK_NSIS_PACKAGE_NAME "@CPACK_NSIS_PACKAGE_NAME@")
-	set(CPACK_NSIS_DISPLAY_NAME "@CPACK_NSIS_PACKAGE_NAME@, open-source engine for Heroes of Might and Magic III ")
-	set(CPACK_NSIS_HELP_LINK "http://vcmi.eu/")
-	set(CPACK_NSIS_URL_INFO_ABOUT "http://vcmi.eu/")
-	set(CPACK_NSIS_CONTACT @CPACK_PACKAGE_CONTACT@)
-	set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
-endif()

+ 7 - 14
cmake_modules/VCMIUtils.cmake

@@ -1,5 +1,8 @@
+# This file should contain custom functions and macro and them only.
+# It's should not alter any configuration on inclusion
+
 #######################################
-#      Build output directories       #
+#        Build output path            #
 #######################################
 macro(vcmi_set_output_dir name dir)
 	# Multi-config builds for Visual Studio, Xcode
@@ -18,7 +21,7 @@ macro(vcmi_set_output_dir name dir)
 endmacro()
 
 #######################################
-#      Better project generation      #
+#        Project generation           #
 #######################################
 
 # Let us have proper tree-like structure in IDEs such as Visual Studio
@@ -35,17 +38,7 @@ function(assign_source_group)
 	endforeach()
 endfunction(assign_source_group)
 
-# Options to enable folders in CMake generated projects for Visual Studio, Xcode, etc
-# Very useful to put 3rd-party libraries such as Minizip, GoogleTest and FuzzyLite in their own folders
-set_property(GLOBAL PROPERTY USE_FOLDERS TRUE)
-define_property(
-	TARGET
-	PROPERTY FOLDER
-	INHERITED
-	BRIEF_DOCS "Set the folder name."
-	FULL_DOCS  "Use to organize targets in an IDE."
-)
-
+# Macro to add subdirectory and set appropriate FOLDER for generated projects files
 function(add_subdirectory_with_folder _folder_name _folder)
 	add_subdirectory(${_folder} ${ARGN})
 	set_property(DIRECTORY "${_folder}" PROPERTY FOLDER "${_folder_name}")
@@ -65,7 +58,7 @@ if(${CMAKE_GENERATOR} MATCHES "Xcode")
 endif(${CMAKE_GENERATOR} MATCHES "Xcode")
 
 #######################################
-#           CMake debugging           #
+#        CMake debugging              #
 #######################################
 
 # Can be called to see check cmake variables and environment variables

+ 2 - 2
launcher/CMakeLists.txt

@@ -2,7 +2,7 @@
 # https://doc.qt.io/qt-5/cmake-manual.html
 include_directories(${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_CURRENT_SOURCE_DIR})
 include_directories(${ZLIB_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS})
-include_directories(${SDL_INCLUDE_DIR})
+include_directories(${SDL2_INCLUDE_DIR})
 
 set(launcher_modmanager_SRCS
 		modManager/cdownloadmanager_moc.cpp
@@ -102,7 +102,7 @@ if(APPLE)
 	set_property(GLOBAL PROPERTY AUTOGEN_TARGETS_FOLDER vcmilauncher)
 endif()
 
-target_link_libraries(vcmilauncher vcmi Qt5::Widgets Qt5::Network ${SDL_LIBRARY})
+target_link_libraries(vcmilauncher vcmi Qt5::Widgets Qt5::Network ${SDL2_LIBRARY})
 
 vcmi_set_output_dir(vcmilauncher "")
 

+ 2 - 2
lib/CMakeLists.txt

@@ -1,5 +1,5 @@
 include_directories(${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_CURRENT_SOURCE_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/lib)
-include_directories(${Boost_INCLUDE_DIRS} ${SDL_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
+include_directories(${Boost_INCLUDE_DIRS} ${SDL2_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
 
 set(lib_SRCS
 		StdInc.cpp
@@ -289,7 +289,7 @@ assign_source_group(${lib_SRCS} ${lib_HEADERS})
 
 add_library(vcmi SHARED ${lib_SRCS} ${lib_HEADERS})
 set_target_properties(vcmi PROPERTIES COMPILE_DEFINITIONS "VCMI_DLL=1")
-target_link_libraries(vcmi ${MINIZIP_LIBRARIES} ${Boost_LIBRARIES} ${SDL_LIBRARY} ${ZLIB_LIBRARIES} ${SYSTEM_LIBS})
+target_link_libraries(vcmi ${MINIZIP_LIBRARIES} ${Boost_LIBRARIES} ${SDL2_LIBRARY} ${ZLIB_LIBRARIES} ${SYSTEM_LIBS})
 
 if(WIN32)
 	set_target_properties(vcmi