Skip to content

Commit bb1c4ba

Browse files
committedMar 12, 2021
Clean up cmake DLL installation and other minor things
1 parent 75eb28b commit bb1c4ba

File tree

6 files changed

+29
-54
lines changed

6 files changed

+29
-54
lines changed
 

Diff for: ‎CMakeLists.txt

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
cmake_minimum_required(VERSION 3.5)
22

3-
cmake_policy(SET CMP0025 OLD)
4-
53
# This can be read from ${PROJECT_NAME} after project() is called
64
project(minetest)
75
set(PROJECT_NAME_CAPITALIZED "Minetest")
@@ -192,7 +190,6 @@ install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/devtest" DESTINATION "${SHA
192190
if(BUILD_CLIENT)
193191
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/client/shaders" DESTINATION "${SHAREDIR}/client")
194192
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/textures/base/pack" DESTINATION "${SHAREDIR}/textures/base")
195-
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/fonts" DESTINATION "${SHAREDIR}")
196193
if(RUN_IN_PLACE)
197194
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/clientmods" DESTINATION "${SHAREDIR}")
198195
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/client/serverlist" DESTINATION "${SHAREDIR}/client")
@@ -237,7 +234,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
237234
message(FATAL_ERROR "Insufficient gcc version, found ${CMAKE_CXX_COMPILER_VERSION}. "
238235
"Version ${GCC_MINIMUM_VERSION} or higher is required.")
239236
endif()
240-
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
237+
elseif(CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?Clang")
241238
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${CLANG_MINIMUM_VERSION}")
242239
message(FATAL_ERROR "Insufficient clang version, found ${CMAKE_CXX_COMPILER_VERSION}. "
243240
"Version ${CLANG_MINIMUM_VERSION} or higher is required.")

Diff for: ‎README.md

+2-4
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,7 @@ Library specific options:
255255
FREETYPE_INCLUDE_DIR_ft2build - Only if building with FreeType 2; directory that contains ft2build.h
256256
FREETYPE_LIBRARY - Only if building with FreeType 2; path to libfreetype.a/libfreetype.so/freetype.lib
257257
FREETYPE_DLL - Only if building with FreeType 2 on Windows; path to libfreetype.dll
258-
GETTEXT_DLL - Only when building with gettext on Windows; path to libintl3.dll
259-
GETTEXT_ICONV_DLL - Only when building with gettext on Windows; path to libiconv2.dll
258+
GETTEXT_DLL - Only when building with gettext on Windows; paths to libintl + libiconv DLLs
260259
GETTEXT_INCLUDE_DIR - Only when building with gettext; directory that contains iconv.h
261260
GETTEXT_LIBRARY - Only when building with gettext on Windows; path to libintl.dll.a
262261
GETTEXT_MSGFMT - Only when building with gettext; path to msgfmt/msgfmt.exe
@@ -284,9 +283,8 @@ Library specific options:
284283
OPENGLES2_LIBRARY - Only if building with GLES; path to libGLESv2.a/libGLESv2.so
285284
SQLITE3_INCLUDE_DIR - Directory that contains sqlite3.h
286285
SQLITE3_LIBRARY - Path to libsqlite3.a/libsqlite3.so/sqlite3.lib
287-
VORBISFILE_DLL - Only if building with sound on Windows; path to libvorbisfile-3.dll
288286
VORBISFILE_LIBRARY - Only if building with sound; path to libvorbisfile.a/libvorbisfile.so/libvorbisfile.dll.a
289-
VORBIS_DLL - Only if building with sound on Windows; path to libvorbis-0.dll
287+
VORBIS_DLL - Only if building with sound on Windows; paths to vorbis DLLs
290288
VORBIS_INCLUDE_DIR - Only if building with sound; directory that contains a directory vorbis with vorbisenc.h inside
291289
VORBIS_LIBRARY - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a
292290
XXF86VM_LIBRARY - Only on Linux; path to libXXf86vm.a/libXXf86vm.so

Diff for: ‎cmake/Modules/FindGettextLib.cmake

-9
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,6 @@ if(WIN32)
4242
NAMES ${GETTEXT_LIB_NAMES}
4343
PATHS "${CUSTOM_GETTEXT_PATH}/lib"
4444
DOC "GetText library")
45-
find_file(GETTEXT_DLL
46-
NAMES libintl.dll intl.dll libintl3.dll intl3.dll
47-
PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib"
48-
DOC "gettext *intl*.dll")
49-
find_file(GETTEXT_ICONV_DLL
50-
NAMES libiconv2.dll
51-
PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib"
52-
DOC "gettext *iconv*.lib")
53-
set(GETTEXT_REQUIRED_VARS ${GETTEXT_REQUIRED_VARS} GETTEXT_DLL GETTEXT_ICONV_DLL)
5445
endif(WIN32)
5546

5647

Diff for: ‎src/CMakeLists.txt

+18-29
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,13 @@ if(ENABLE_GETTEXT)
6363
if(GETTEXTLIB_FOUND)
6464
if(WIN32)
6565
message(STATUS "GetText library: ${GETTEXT_LIBRARY}")
66-
message(STATUS "GetText DLL: ${GETTEXT_DLL}")
67-
message(STATUS "GetText iconv DLL: ${GETTEXT_ICONV_DLL}")
66+
message(STATUS "GetText DLL(s): ${GETTEXT_DLL}")
6867
endif()
6968
set(USE_GETTEXT TRUE)
7069
message(STATUS "GetText enabled; locales found: ${GETTEXT_AVAILABLE_LOCALES}")
7170
endif(GETTEXTLIB_FOUND)
7271
else()
73-
mark_as_advanced(GETTEXT_ICONV_DLL GETTEXT_INCLUDE_DIR GETTEXT_LIBRARY GETTEXT_MSGFMT)
72+
mark_as_advanced(GETTEXT_INCLUDE_DIR GETTEXT_LIBRARY GETTEXT_MSGFMT)
7473
message(STATUS "GetText disabled.")
7574
endif()
7675

@@ -268,8 +267,10 @@ if(WIN32)
268267
if(ENABLE_SOUND)
269268
set(OPENAL_DLL "" CACHE FILEPATH "Path to OpenAL32.dll for installation (optional)")
270269
set(OGG_DLL "" CACHE FILEPATH "Path to libogg.dll for installation (optional)")
271-
set(VORBIS_DLL "" CACHE FILEPATH "Path to libvorbis.dll for installation (optional)")
272-
set(VORBISFILE_DLL "" CACHE FILEPATH "Path to libvorbisfile.dll for installation (optional)")
270+
set(VORBIS_DLL "" CACHE FILEPATH "Path to Vorbis DLLs for installation (optional)")
271+
endif()
272+
if(USE_GETTEXT)
273+
set(GETTEXT_DLL "" CACHE FILEPATH "Path to Intl/Iconv DLLs for installation (optional)")
273274
endif()
274275
if(USE_LUAJIT)
275276
set(LUA_DLL "" CACHE FILEPATH "Path to luajit-5.1.dll for installation (optional)")
@@ -712,7 +713,7 @@ if(MSVC)
712713

713714
# Flags that cannot be shared between cl and clang-cl
714715
# https://clang.llvm.org/docs/UsersManual.html#clang-cl
715-
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
716+
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
716717
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld")
717718

718719
# Disable pragma-pack warning
@@ -730,7 +731,7 @@ else()
730731
else()
731732
set(RELEASE_WARNING_FLAGS "")
732733
endif()
733-
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
734+
if(CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?Clang")
734735
set(WARNING_FLAGS "${WARNING_FLAGS} -Wsign-compare")
735736
endif()
736737

@@ -767,7 +768,7 @@ else()
767768
else()
768769
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${MATH_FLAGS}")
769770
endif()
770-
endif(CMAKE_SYSTEM_NAME MATCHES "(Darwin|BSD|DragonFly)")
771+
endif()
771772
set(CMAKE_CXX_FLAGS_SEMIDEBUG "-g -O1 -Wall ${WARNING_FLAGS} ${OTHER_FLAGS}")
772773
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall ${WARNING_FLAGS} ${OTHER_FLAGS}")
773774

@@ -804,7 +805,7 @@ if(WIN32)
804805
FILES_MATCHING PATTERN "*.dll")
805806
else()
806807
# Use the old-style way to install dll's
807-
if(USE_SOUND)
808+
if(BUILD_CLIENT AND USE_SOUND)
808809
if(OPENAL_DLL)
809810
install(FILES ${OPENAL_DLL} DESTINATION ${BINDIR})
810811
endif()
@@ -814,17 +815,14 @@ if(WIN32)
814815
if(VORBIS_DLL)
815816
install(FILES ${VORBIS_DLL} DESTINATION ${BINDIR})
816817
endif()
817-
if(VORBISFILE_DLL)
818-
install(FILES ${VORBISFILE_DLL} DESTINATION ${BINDIR})
819-
endif()
820818
endif()
821819
if(CURL_DLL)
822820
install(FILES ${CURL_DLL} DESTINATION ${BINDIR})
823821
endif()
824822
if(ZLIB_DLL)
825823
install(FILES ${ZLIB_DLL} DESTINATION ${BINDIR})
826824
endif()
827-
if(FREETYPE_DLL)
825+
if(BUILD_CLIENT AND FREETYPE_DLL)
828826
install(FILES ${FREETYPE_DLL} DESTINATION ${BINDIR})
829827
endif()
830828
if(SQLITE3_DLL)
@@ -836,6 +834,12 @@ if(WIN32)
836834
if(LUA_DLL)
837835
install(FILES ${LUA_DLL} DESTINATION ${BINDIR})
838836
endif()
837+
if(BUILD_CLIENT AND IRRLICHT_DLL)
838+
install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR})
839+
endif()
840+
if(BUILD_CLIENT AND USE_GETTEXT AND GETTEXT_DLL)
841+
install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR})
842+
endif()
839843
endif()
840844
endif()
841845

@@ -863,29 +867,14 @@ if(BUILD_CLIENT)
863867
endforeach()
864868
endif()
865869

870+
# Install necessary fonts depending on configuration
866871
if(USE_FREETYPE)
867872
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" DESTINATION "${SHAREDIR}"
868873
FILES_MATCHING PATTERN "*.ttf" PATTERN "*.txt")
869874
else()
870875
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" DESTINATION "${SHAREDIR}"
871876
FILES_MATCHING PATTERN "*.png" PATTERN "*.xml")
872877
endif()
873-
874-
if(WIN32)
875-
if(NOT VCPKG_APPLOCAL_DEPS)
876-
if(DEFINED IRRLICHT_DLL)
877-
install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR})
878-
endif()
879-
if(USE_GETTEXT)
880-
if(DEFINED GETTEXT_DLL)
881-
install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR})
882-
endif()
883-
if(DEFINED GETTEXT_ICONV_DLL)
884-
install(FILES ${GETTEXT_ICONV_DLL} DESTINATION ${BINDIR})
885-
endif()
886-
endif()
887-
endif()
888-
endif()
889878
endif(BUILD_CLIENT)
890879

891880
if(BUILD_SERVER)

Diff for: ‎util/buildbot/buildwin32.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ if [ "x$NO_MINETEST_GAME" = "x" ]; then
103103
fi
104104

105105
irr_dlls=$(echo $libdir/irrlicht/bin/*.dll | tr ' ' ';')
106+
vorbis_dlls=$(echo $libdir/libvorbis/bin/libvorbis{,file}-*.dll | tr ' ' ';')
107+
gettext_dlls=$(echo $libdir/gettext/bin/lib{intl,iconv}-*.dll | tr ' ' ';')
106108

107109
# Build the thing
108110
[ -d _build ] && rm -Rf _build/
@@ -137,9 +139,8 @@ cmake .. \
137139
\
138140
-DVORBIS_INCLUDE_DIR=$libdir/libvorbis/include \
139141
-DVORBIS_LIBRARY=$libdir/libvorbis/lib/libvorbis.dll.a \
140-
-DVORBIS_DLL=$libdir/libvorbis/bin/libvorbis-0.dll \
142+
-DVORBIS_DLL="$vorbis_dlls" \
141143
-DVORBISFILE_LIBRARY=$libdir/libvorbis/lib/libvorbisfile.dll.a \
142-
-DVORBISFILE_DLL=$libdir/libvorbis/bin/libvorbisfile-3.dll \
143144
\
144145
-DOPENAL_INCLUDE_DIR=$libdir/openal_stripped/include/AL \
145146
-DOPENAL_LIBRARY=$libdir/openal_stripped/lib/libOpenAL32.dll.a \
@@ -150,8 +151,7 @@ cmake .. \
150151
-DCURL_LIBRARY=$libdir/libcurl/lib/libcurl.dll.a \
151152
\
152153
-DGETTEXT_MSGFMT=`which msgfmt` \
153-
-DGETTEXT_DLL=$libdir/gettext/bin/libintl-8.dll \
154-
-DGETTEXT_ICONV_DLL=$libdir/gettext/bin/libiconv-2.dll \
154+
-DGETTEXT_DLL="$gettext_dlls" \
155155
-DGETTEXT_INCLUDE_DIR=$libdir/gettext/include \
156156
-DGETTEXT_LIBRARY=$libdir/gettext/lib/libintl.dll.a \
157157
\

Diff for: ‎util/buildbot/buildwin64.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ if [ "x$NO_MINETEST_GAME" = "x" ]; then
9393
fi
9494

9595
irr_dlls=$(echo $libdir/irrlicht/bin/*.dll | tr ' ' ';')
96+
vorbis_dlls=$(echo $libdir/libvorbis/bin/libvorbis{,file}-*.dll | tr ' ' ';')
97+
gettext_dlls=$(echo $libdir/gettext/bin/lib{intl,iconv}-*.dll | tr ' ' ';')
9698

9799
# Build the thing
98100
[ -d _build ] && rm -Rf _build/
@@ -127,9 +129,8 @@ cmake .. \
127129
\
128130
-DVORBIS_INCLUDE_DIR=$libdir/libvorbis/include \
129131
-DVORBIS_LIBRARY=$libdir/libvorbis/lib/libvorbis.dll.a \
130-
-DVORBIS_DLL=$libdir/libvorbis/bin/libvorbis-0.dll \
132+
-DVORBIS_DLL="$vorbis_dlls" \
131133
-DVORBISFILE_LIBRARY=$libdir/libvorbis/lib/libvorbisfile.dll.a \
132-
-DVORBISFILE_DLL=$libdir/libvorbis/bin/libvorbisfile-3.dll \
133134
\
134135
-DOPENAL_INCLUDE_DIR=$libdir/openal_stripped/include/AL \
135136
-DOPENAL_LIBRARY=$libdir/openal_stripped/lib/libOpenAL32.dll.a \
@@ -140,8 +141,7 @@ cmake .. \
140141
-DCURL_LIBRARY=$libdir/libcurl/lib/libcurl.dll.a \
141142
\
142143
-DGETTEXT_MSGFMT=`which msgfmt` \
143-
-DGETTEXT_DLL=$libdir/gettext/bin/libintl-8.dll \
144-
-DGETTEXT_ICONV_DLL=$libdir/gettext/bin/libiconv-2.dll \
144+
-DGETTEXT_DLL="$gettext_dlls" \
145145
-DGETTEXT_INCLUDE_DIR=$libdir/gettext/include \
146146
-DGETTEXT_LIBRARY=$libdir/gettext/lib/libintl.dll.a \
147147
\

0 commit comments

Comments
 (0)