- attempt to correct tomreyns cmake linker issue
This commit is contained in:
parent
eaad769182
commit
59be04ab6a
125
CMakeLists.txt
125
CMakeLists.txt
|
@ -25,9 +25,9 @@ IF(CMAKE_BUILD_TYPE)
|
|||
MESSAGE(STATUS "Build type for this compile will be: ${CMAKE_BUILD_TYPE}")
|
||||
ENDIF()
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
SET(CMAKE_COMPILER_IS_GNUCXX "YES")
|
||||
SET(CMAKE_COMPILER_IS_GNUCXX "YES")
|
||||
# ADD_DEFINITIONS("-Qunused-arguments -Wno-switch")
|
||||
ADD_DEFINITIONS("-Wno-switch")
|
||||
ADD_DEFINITIONS("-Wno-switch")
|
||||
ENDIF()
|
||||
|
||||
OPTION(BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS "Build model import/export tools" ON)
|
||||
|
@ -102,16 +102,16 @@ IF(APPLE)
|
|||
ENDIF(APPLE)
|
||||
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
MESSAGE(STATUS "Detected CLANG Compiler...")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
MESSAGE(STATUS "Detected CLANG Compiler...")
|
||||
ELSEIF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
MESSAGE(STATUS "Detected GNUC Compiler...")
|
||||
ELSEIF(MINGW)
|
||||
MESSAGE(STATUS "Detected MINGW Compiler...")
|
||||
ENDIF()
|
||||
|
||||
# Common generic GNU type compiler options that work with all generic GCC compatible compilers
|
||||
ADD_DEFINITIONS("-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing")
|
||||
# Common generic GNU type compiler options that work with all generic GCC compatible compilers
|
||||
ADD_DEFINITIONS("-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing")
|
||||
|
||||
# For gcc warning options see: http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
|
||||
IF(NOT MINGW)
|
||||
|
@ -121,56 +121,54 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
|||
ELSE()
|
||||
# ADD_DEFINITIONS("-Wreturn-type -fno-strict-aliasing -frounding-math -fsignaling-nans -mfpmath=sse -msse -DUNICODE")
|
||||
# ADD_DEFINITIONS("-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing -frounding-math -fsignaling-nans -DUNICODE")
|
||||
ADD_DEFINITIONS("-DUNICODE")
|
||||
|
||||
ADD_DEFINITIONS("-DUNICODE")
|
||||
ENDIF()
|
||||
|
||||
# CLang specific Compiler Options
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
# CLang specific Compiler Options
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
|
||||
# GCC specific Compiler Options
|
||||
ELSE()
|
||||
ADD_DEFINITIONS("-frounding-math -fsignaling-nans")
|
||||
# GCC specific Compiler Options
|
||||
ELSE()
|
||||
ADD_DEFINITIONS("-frounding-math -fsignaling-nans")
|
||||
|
||||
# IF(NOT MINGW)
|
||||
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic")
|
||||
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic")
|
||||
# ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
||||
|
||||
#MESSAGE(STATUS "*TEST: Checking for max SSE LEVEL [${FORCE_MAX_SSE_LEVEL}]")
|
||||
#MESSAGE(STATUS "*TEST: Checking for max SSE LEVEL [${FORCE_MAX_SSE_LEVEL}]")
|
||||
|
||||
OPTION(FORCE_STREFLOP_SOFTWRAPPER "Set the streflop library to be forced to use the software emulator" OFF)
|
||||
IF(NOT FORCE_MAX_SSE_LEVEL AND NOT FORCE_STREFLOP_SOFTWRAPPER)
|
||||
SET(FORCE_MAX_SSE_LEVEL "1" CACHE STRING "Set the max SSE level to use if supported (0-3)")
|
||||
ENDIF()
|
||||
IF(NOT FORCE_MAX_SSE_LEVEL AND NOT FORCE_STREFLOP_SOFTWRAPPER)
|
||||
SET(FORCE_MAX_SSE_LEVEL "1" CACHE STRING "Set the max SSE level to use if supported (0-3)")
|
||||
ENDIF()
|
||||
|
||||
IF(NOT FORCE_STREFLOP_SOFTWRAPPER)
|
||||
MESSAGE(STATUS "*NOTE: Checking for max SSE LEVEL [${FORCE_MAX_SSE_LEVEL}]")
|
||||
special_check_for_sse( ${FORCE_MAX_SSE_LEVEL} )
|
||||
ENDIF()
|
||||
IF(NOT FORCE_STREFLOP_SOFTWRAPPER)
|
||||
MESSAGE(STATUS "*NOTE: Checking for max SSE LEVEL [${FORCE_MAX_SSE_LEVEL}]")
|
||||
special_check_for_sse( ${FORCE_MAX_SSE_LEVEL} )
|
||||
ENDIF()
|
||||
|
||||
IF(WANT_USE_STREFLOP)
|
||||
ADD_DEFINITIONS("-DUSE_STREFLOP -DSTREFLOP_RANDOM_GEN_SIZE=32 -DLIBM_COMPILING_FLT32 -DN_SPECIALIZED=32")
|
||||
|
||||
IF(HAS_SSE_EXTENSIONS AND NOT ${FORCE_MAX_SSE_LEVEL} MATCHES "0" AND NOT FORCE_STREFLOP_SOFTWRAPPER)
|
||||
ADD_DEFINITIONS("-DSTREFLOP_SSE")
|
||||
MESSAGE(STATUS "*NOTE: using SSE for STREFLOP.")
|
||||
ELSE()
|
||||
IF(NOT FORCE_STREFLOP_SOFTWRAPPER)
|
||||
special_check_for_x87()
|
||||
ENDIF()
|
||||
IF(HAS_SSE_EXTENSIONS AND NOT ${FORCE_MAX_SSE_LEVEL} MATCHES "0" AND NOT FORCE_STREFLOP_SOFTWRAPPER)
|
||||
ADD_DEFINITIONS("-DSTREFLOP_SSE")
|
||||
MESSAGE(STATUS "*NOTE: using SSE for STREFLOP.")
|
||||
ELSE()
|
||||
IF(NOT FORCE_STREFLOP_SOFTWRAPPER)
|
||||
special_check_for_x87()
|
||||
ENDIF()
|
||||
|
||||
IF(HAS_X87_SUPPORT AND NOT FORCE_STREFLOP_SOFTWRAPPER)
|
||||
ADD_DEFINITIONS("-DSTREFLOP_X87")
|
||||
MESSAGE(STATUS "*NOTE: using X87 for STREFLOP.")
|
||||
ELSE()
|
||||
ADD_DEFINITIONS("-DSTREFLOP_SOFT")
|
||||
MESSAGE(STATUS "*NOTE: using SOFT emulation for STREFLOP.")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(HAS_X87_SUPPORT AND NOT FORCE_STREFLOP_SOFTWRAPPER)
|
||||
ADD_DEFINITIONS("-DSTREFLOP_X87")
|
||||
MESSAGE(STATUS "*NOTE: using X87 for STREFLOP.")
|
||||
ELSE()
|
||||
ADD_DEFINITIONS("-DSTREFLOP_SOFT")
|
||||
MESSAGE(STATUS "*NOTE: using SOFT emulation for STREFLOP.")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ELSE()
|
||||
MESSAGE(STATUS "*WARNING: Disabled use of STREFLOP! Out of synchs may occur")
|
||||
ENDIF()
|
||||
|
@ -189,10 +187,10 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
|||
HAS_GCC_BACKTRACE)
|
||||
|
||||
IF(HAS_GCC_BACKTRACE)
|
||||
message(STATUS "Found GCC backtrace lib, will support backtraces")
|
||||
ADD_DEFINITIONS(-DHAS_GCC_BACKTRACE)
|
||||
message(STATUS "Found GCC backtrace lib, will support backtraces")
|
||||
ADD_DEFINITIONS(-DHAS_GCC_BACKTRACE)
|
||||
ELSE()
|
||||
message(STATUS "**WARNING DID NOT Find GCC backtrace lib")
|
||||
message(STATUS "**WARNING DID NOT Find GCC backtrace lib")
|
||||
ENDIF()
|
||||
|
||||
# Debug compiler flags
|
||||
|
@ -212,6 +210,15 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
|||
SET(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} -s") ## Strip binary
|
||||
ENDIF()
|
||||
|
||||
# see if this fixes compile issue for tomreyn: libpthread.so.0: error adding symbols: DSO missing from command line
|
||||
IF(UNIX)
|
||||
MESSAGE(STATUS "*NOTE: Apply fix for: libpthread.so.0: error adding symbols: DSO missing from command line")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -pthread")
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -pthread")
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} -pthread")
|
||||
ENDIF()
|
||||
|
||||
# Get the git revision info for the binary
|
||||
SET(HAS_GIT "FALSE")
|
||||
SET(GIT_LIVE_REV_CMD "")
|
||||
|
@ -223,28 +230,28 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
|||
include(FindGit)
|
||||
|
||||
IF(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git/")
|
||||
SET(HAS_GIT "TRUE")
|
||||
MESSAGE(STATUS "Found GIT and using GIT version stamping...")
|
||||
SET(HAS_GIT "TRUE")
|
||||
MESSAGE(STATUS "Found GIT and using GIT version stamping...")
|
||||
|
||||
# Get the current commit SHA1
|
||||
execute_process(
|
||||
COMMAND git log -1 --format=%h --abbrev=7
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_SHA1
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
# Get the current commit SHA1
|
||||
execute_process(
|
||||
COMMAND git log -1 --format=%h --abbrev=7
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_SHA1
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
# Get the current version counter
|
||||
execute_process(
|
||||
COMMAND git rev-list HEAD --count
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_COUNT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
# Get the current version counter
|
||||
execute_process(
|
||||
COMMAND git rev-list HEAD --count
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_COUNT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
SET(GIT_LIVE_REV_CMD "`cd '${PROJECT_SOURCE_DIR}' && git rev-list HEAD --count`.`cd '${PROJECT_SOURCE_DIR}' && git log -1 --format=%h --abbrev=7`")
|
||||
SET(GIT_LIVE_REV_CMD "`cd '${PROJECT_SOURCE_DIR}' && git rev-list HEAD --count`.`cd '${PROJECT_SOURCE_DIR}' && git log -1 --format=%h --abbrev=7`")
|
||||
|
||||
MESSAGE(STATUS "Using GIT revision stamp: [${GIT_COMMIT_COUNT}.${GIT_SHA1}] CMD [${GIT_LIVE_REV_CMD}]")
|
||||
MESSAGE(STATUS "Using GIT revision stamp: [${GIT_COMMIT_COUNT}.${GIT_SHA1}] CMD [${GIT_LIVE_REV_CMD}]")
|
||||
|
||||
IF(CMAKE_GENERATOR STREQUAL Xcode)
|
||||
SET(GIT_VERSION_CMD "-DGITVERSION='\\\\'${GIT_COMMIT_COUNT}.${GIT_SHA1}\\\\''")
|
||||
|
|
|
@ -269,7 +269,7 @@ IF(BUILD_MEGAGLEST)
|
|||
SET(EXECUTABLE_OUTPUT_PATH "${MEGAGLEST_FRIENDLY_OUTPUT_PATH}")
|
||||
ENDIF()
|
||||
|
||||
MESSAGE(STATUS "***Note: The final output path for the MegaGlest engine will be [${EXECUTABLE_OUTPUT_PATH}]")
|
||||
MESSAGE(STATUS "***Note: The final output path for the MegaGlest engine will be [${EXECUTABLE_OUTPUT_PATH}]")
|
||||
|
||||
SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1)
|
||||
|
||||
|
@ -296,6 +296,7 @@ IF(BUILD_MEGAGLEST)
|
|||
IF(WIN32)
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT WIN32)
|
||||
IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP})
|
||||
|
@ -304,15 +305,14 @@ IF(BUILD_MEGAGLEST)
|
|||
ENDIF()
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})
|
||||
|
||||
SET(HELP2MAN_OUT_PATH ${EXECUTABLE_OUTPUT_PATH})
|
||||
IF("${EXECUTABLE_OUTPUT_PATH}" STREQUAL "")
|
||||
SET(HELP2MAN_OUT_PATH "${CMAKE_CURRENT_BINARY_DIR}/")
|
||||
ENDIF()
|
||||
SET(HELP2MAN_OUT_PATH ${EXECUTABLE_OUTPUT_PATH})
|
||||
IF("${EXECUTABLE_OUTPUT_PATH}" STREQUAL "")
|
||||
SET(HELP2MAN_OUT_PATH "${CMAKE_CURRENT_BINARY_DIR}/")
|
||||
ENDIF()
|
||||
|
||||
IF(EXISTS ${HELP2MAN})
|
||||
MESSAGE(STATUS "***-- Found help2man: ${HELP2MAN} about to build manpage in [${HELP2MAN_OUT_PATH}${TARGET_NAME_MANPAGE}]")
|
||||
|
||||
SET(MG_MANPAGE_DESCRIPTION "3D multi-player real time strategy game")
|
||||
SET(MG_MANPAGE_DESCRIPTION "3D multi-player real time strategy game")
|
||||
|
||||
IF(EXISTS ${XVFB_EXEC})
|
||||
MESSAGE(STATUS "***-- Found xvfb-run: ${XVFB_EXEC} about to build manpage with it.")
|
||||
|
@ -327,23 +327,23 @@ IF(BUILD_MEGAGLEST)
|
|||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# Requires an install prefix for the items below to work
|
||||
IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "")
|
||||
MESSAGE(STATUS "**Source package INSTALL TRIGGERED [${PROJECT_SOURCE_DIR}]")
|
||||
# Requires an install prefix for the items below to work
|
||||
IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "")
|
||||
MESSAGE(STATUS "**Source package INSTALL TRIGGERED [${PROJECT_SOURCE_DIR}]")
|
||||
|
||||
# Installation of the program
|
||||
INSTALL(TARGETS
|
||||
${TARGET_NAME}
|
||||
DESTINATION ${MEGAGLEST_BIN_INSTALL_PATH})
|
||||
# Installation of the program
|
||||
INSTALL(TARGETS
|
||||
${TARGET_NAME}
|
||||
DESTINATION ${MEGAGLEST_BIN_INSTALL_PATH})
|
||||
|
||||
IF(EXISTS ${HELP2MAN} AND NOT "${MEGAGLEST_MANPAGE_INSTALL_PATH}" STREQUAL "")
|
||||
MESSAGE(STATUS "**NOTE: Will Install manpage [${TARGET_NAME_MANPAGE}] to [${MEGAGLEST_MANPAGE_INSTALL_PATH}]")
|
||||
IF(EXISTS ${HELP2MAN} AND NOT "${MEGAGLEST_MANPAGE_INSTALL_PATH}" STREQUAL "")
|
||||
MESSAGE(STATUS "**NOTE: Will Install manpage [${TARGET_NAME_MANPAGE}] to [${MEGAGLEST_MANPAGE_INSTALL_PATH}]")
|
||||
|
||||
# Installation of the program manpage file
|
||||
INSTALL(FILES
|
||||
"${HELP2MAN_OUT_PATH}${TARGET_NAME_MANPAGE}"
|
||||
DESTINATION ${MEGAGLEST_MANPAGE_INSTALL_PATH})
|
||||
ENDIF()
|
||||
# Installation of the program manpage file
|
||||
INSTALL(FILES
|
||||
"${HELP2MAN_OUT_PATH}${TARGET_NAME_MANPAGE}"
|
||||
DESTINATION ${MEGAGLEST_MANPAGE_INSTALL_PATH})
|
||||
ENDIF()
|
||||
|
||||
IF(UNIX)
|
||||
INSTALL(PROGRAMS
|
||||
|
|
Loading…
Reference in New Issue