diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 416290df1..c39fe679c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,12 +46,20 @@ else() add_flags_cxx("-pthread") endif() -# Allow for a forced 32-bit build under 32-bit OS: + +# Allow for a forced 32-bit build under 64-bit OS: if (FORCE_32) add_flags_cxx("-m32") add_flags_lnk("-m32") endif() + +# Have the compiler generate code specifically targeted at the current machine on Linux +if(LINUX AND NOT CROSSCOMPILE) + add_flags_cxx("-march=native") +endif() + + # Set lower warnings-level for the libraries: if (MSVC) # Remove /W3 from command line -- cannot just cancel it later with /w like in unix, MSVC produces a D9025 warning (option1 overriden by option2) @@ -66,16 +74,19 @@ else() set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -w") endif() + # Under clang, we need to disable ASM support in CryptoPP: if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") add_definitions(-DCRYPTOPP_DISABLE_ASM) endif() + # Under Windows, we need Lua as DLL; on *nix we need it linked statically: if (WIN32) add_definitions(-DLUA_BUILD_AS_DLL) endif() + # On Unix we use two dynamic loading libraries dl and ltdl. # Preference is for dl on unknown systems as it is specified in POSIX # the dynamic loader is used by lua and sqllite. @@ -87,6 +98,7 @@ if (UNIX) endif() endif() + # The Expat library is linked in statically, make the source files aware of that: add_definitions(-DXML_STATIC) @@ -100,6 +112,7 @@ else() set (LNK_PROFILING "-pg") endif() + # Declare the profiling configurations: SET(CMAKE_CXX_FLAGS_DEBUGPROFILE "${CMAKE_CXX_FLAGS_DEBUG} ${PCXX_ROFILING}" @@ -124,19 +137,19 @@ MARK_AS_ADVANCED( CMAKE_SHARED_LINKER_FLAGS_DEBUGPROFILE ) SET(CMAKE_CXX_FLAGS_RELEASEPROFILE - "${CMAKE_CXX_FLAGS_DEBUG} ${CXX_PROFILING}" + "${CMAKE_CXX_FLAGS_RELEASE} ${CXX_PROFILING}" CACHE STRING "Flags used by the C++ compiler during profile builds." FORCE ) SET(CMAKE_C_FLAGS_RELEASEPROFILE - "${CMAKE_C_FLAGS_DEBUG} ${CXX_PROFILING}" + "${CMAKE_C_FLAGS_RELEASE} ${CXX_PROFILING}" CACHE STRING "Flags used by the C compiler during profile builds." FORCE ) SET(CMAKE_EXE_LINKER_FLAGS_RELEASEPROFILE - "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${LNK_PROFILING}" + "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${LNK_PROFILING}" CACHE STRING "Flags used for linking binaries during profile builds." FORCE ) SET(CMAKE_SHARED_LINKER_FLAGS_RELEASEPROFILE - "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} ${LNK_PROFILING}" + "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} ${LNK_PROFILING}" CACHE STRING "Flags used by the shared libraries linker during profile builds." FORCE ) MARK_AS_ADVANCED( |