From c5245a9e7353d3ee9701d1475f6c2f2b3e4f265f Mon Sep 17 00:00:00 2001 From: Jammyjamjamman Date: Sun, 20 Jun 2021 16:04:19 +0100 Subject: [PATCH] More fixes to cmake builds - Add icons to windows exes. - Revert removal of CurlGetConfig.cmake. This is still required in ubuntu. (Perhaps only for static builds.) --- mk/cmake/Modules/CurlGetConfig.cmake | 63 ++++++++++++++++++++++++++ source/g3d_viewer/CMakeLists.txt | 5 ++ source/glest_game/CMakeLists.txt | 2 + source/glest_map_editor/CMakeLists.txt | 5 ++ source/shared_lib/CMakeLists.txt | 1 + 5 files changed, 76 insertions(+) create mode 100644 mk/cmake/Modules/CurlGetConfig.cmake diff --git a/mk/cmake/Modules/CurlGetConfig.cmake b/mk/cmake/Modules/CurlGetConfig.cmake new file mode 100644 index 00000000..a583889f --- /dev/null +++ b/mk/cmake/Modules/CurlGetConfig.cmake @@ -0,0 +1,63 @@ +# +# Curl Get Config +# +# IF we are using a system that supports curl-config use it. +# + +IF(CURL_FOUND) + IF(UNIX) + IF(UNIX AND APPLE AND NOT CMAKE_CURL_CONFIG) + FIND_PROGRAM(CMAKE_CURL_CONFIG curl-config + PATHS /opt/local + PATH_SUFFIXES bin NO_DEFAULT_PATH) + ENDIF() + IF(NOT CMAKE_CURL_CONFIG) + FIND_PROGRAM(CMAKE_CURL_CONFIG curl-config + PATHS + ~/Library/Frameworks + /Library/Frameworks + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + PATH_SUFFIXES bin) + ENDIF() + MARK_AS_ADVANCED(CMAKE_CURL_CONFIG) + + IF(CMAKE_CURL_CONFIG) + IF(STATIC_CURL) + # run the curl-config program to get --static-libs + execute_process(COMMAND ${CMAKE_CURL_CONFIG} --static-libs + OUTPUT_VARIABLE CURL_STATIC_LIBS + RESULT_VARIABLE RET + OUTPUT_STRIP_TRAILING_WHITESPACE) + ELSE() + SET(RET 1) + ENDIF() + + IF(RET EQUAL 0 AND CURL_STATIC_LIBS) + MESSAGE(STATUS "curl-config: ${CMAKE_CURL_CONFIG}, #1 , using CURL static libs: [${CURL_STATIC_LIBS}]") + SET(CURL_LIBRARIES "-Bstatic ${CURL_STATIC_LIBS}") + ELSE() + execute_process(COMMAND ${CMAKE_CURL_CONFIG} --libs + OUTPUT_VARIABLE CURL_DYNAMIC_LIBS + RESULT_VARIABLE RET2 + OUTPUT_STRIP_TRAILING_WHITESPACE) + + IF(RET2 EQUAL 0 AND CURL_DYNAMIC_LIBS) + MESSAGE(STATUS "curl-config: ${CMAKE_CURL_CONFIG}, #2 RET = ${RET}, using CURL dynamic libs: ${CURL_DYNAMIC_LIBS}") + SET(CURL_LIBRARIES "${CURL_DYNAMIC_LIBS}") + ELSE() + MESSAGE(STATUS "curl-config: ${CMAKE_CURL_CONFIG}, #3 RET = ${RET}/${RET2}, using CURL libs found by cmake: ${CURL_LIBRARIES}") + ENDIF() + ENDIF() + ENDIF() + ENDIF() + IF(CURL_VERSION_STRING AND "${CURL_VERSION_STRING}" VERSION_LESS "${CURL_MIN_VERSION_MG}") + MESSAGE(STATUS "(please visit http://curl.haxx.se/libcurl/ to find a newer version)") + MESSAGE(FATAL_ERROR " CURL version = [${CURL_VERSION_STRING}] we require AT LEAST [7.16.4]") + ENDIF() +ELSE() + SET(CURL_LIBRARIES) + SET(CURL_INCLUDE_DIRS) +ENDIF() diff --git a/source/g3d_viewer/CMakeLists.txt b/source/g3d_viewer/CMakeLists.txt index 4699a36b..01ca2b87 100644 --- a/source/g3d_viewer/CMakeLists.txt +++ b/source/g3d_viewer/CMakeLists.txt @@ -207,6 +207,11 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) + IF(WIN32) + # Must come after ADD_EXECUTABLE. + TARGET_SOURCES(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/mk/windoze/g3d_viewer.rc) + ENDIF() + IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND) TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) ENDIF() diff --git a/source/glest_game/CMakeLists.txt b/source/glest_game/CMakeLists.txt index e329f71d..f1cc3db8 100644 --- a/source/glest_game/CMakeLists.txt +++ b/source/glest_game/CMakeLists.txt @@ -92,6 +92,7 @@ IF(BUILD_MEGAGLEST) ENDIF() FIND_PACKAGE(CURL REQUIRED) + INCLUDE(${CMAKE_SOURCE_DIR}/mk/cmake/Modules/CurlGetConfig.cmake) INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) IF(UNIX) IF(NOT OPENSSL_FOUND) @@ -296,6 +297,7 @@ IF(BUILD_MEGAGLEST) endif() IF(WIN32) + TARGET_SOURCES(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/mk/windoze/glest.rc) IF(VCPKG_TARGET_TRIPLET) TARGET_LINK_LIBRARIES(${TARGET_NAME} odbc32 wsock32 winspool winmm shell32 comctl32 advapi32 opengl32 glu32 ole32 oleaut32 uuid ddraw dsound dxguid ws2_32 iphlpapi gdi32 user32 kernel32 dbghelp shlwapi) find_package(Ogg CONFIG REQUIRED) diff --git a/source/glest_map_editor/CMakeLists.txt b/source/glest_map_editor/CMakeLists.txt index bf8aaed5..3f6b3dd2 100644 --- a/source/glest_map_editor/CMakeLists.txt +++ b/source/glest_map_editor/CMakeLists.txt @@ -194,6 +194,11 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) ENDIF() + IF(WIN32) + # Must come after ADD_EXECUTABLE. + TARGET_SOURCES(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/mk/windoze/glest_editor.rc) + ENDIF() + SET(MG_STREFLOP "") IF(WANT_USE_STREFLOP) SET(MG_STREFLOP "streflop") diff --git a/source/shared_lib/CMakeLists.txt b/source/shared_lib/CMakeLists.txt index fc57d5a6..b4b796b6 100644 --- a/source/shared_lib/CMakeLists.txt +++ b/source/shared_lib/CMakeLists.txt @@ -93,6 +93,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST ENDIF() FIND_PACKAGE(CURL REQUIRED) + INCLUDE(${CMAKE_SOURCE_DIR}/mk/cmake/Modules/CurlGetConfig.cmake) INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) IF(UNIX) IF(NOT OPENSSL_FOUND)