Skip to content

Commit

Permalink
CMake clang shit
Browse files Browse the repository at this point in the history
  • Loading branch information
Justin Crawford authored and Justin Crawford committed May 20, 2013
1 parent 11e21e5 commit 9ed0bf7
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 7 deletions.
39 changes: 33 additions & 6 deletions CMakeLists.txt
Expand Up @@ -187,8 +187,6 @@ endif(UNIX OR APPLE)
# Various options we could use
option(USE_LLVM_GOLD "If clang is specified, use LLVM Gold optimizations" OFF)



# Set the install directory for the .so's
set(BASEGAME "main")

Expand All @@ -208,7 +206,7 @@ if(CMAKE_BUILD_TYPE STREQUAL "DEMO" OR CMAKE_BUILD_TYPE STREQUAL "RELEASE")
if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
if(${USE_LLVM_GOLD})
# Attempt to use LLVM Gold and optimize the fuck out of this code
set(CXXFLAGS "${CXXFLAGS} -O4 -ffast-math -fsigned-char -emit-llvm")
set(CXXFLAGS "${CXXFLAGS} -O4 -ffast-math -fsigned-char -emit-llvm")
else(${USE_LLVM_GOLD})
# Use normal optimizations that clang offers
set(CXXFLAGS "${CXXFLAGS} -O3 -ffast-math -fsigned-char")
Expand All @@ -225,6 +223,35 @@ if(CMAKE_BUILD_TYPE STREQUAL "DEMO" OR CMAKE_BUILD_TYPE STREQUAL "RELEASE")
endif(CMAKE_BUILD_TYPE STREQUAL "DEMO")
endif(CMAKE_BUILD_TYPE STREQUAL "DEMO" OR CMAKE_BUILD_TYPE STREQUAL "RELEASE")

if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND ${USE_LLVM_GOLD})
#SET (CMAKE_C_COMPILER "/usr/bin/clang")
SET (CMAKE_C_FLAGS "-Wall -std=c99")
SET (CMAKE_C_FLAGS_DEBUG "-g")
SET (CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG")
SET (CMAKE_C_FLAGS_RELEASE "-O4 -DNDEBUG")
SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")

SET (CMAKE_CXX_COMPILER "/usr/bin/clang++")
SET (CMAKE_CXX_FLAGS "-Wall -std=c++11 -stdlib=c++11")
SET (CMAKE_CXX_FLAGS_DEBUG "-g")
SET (CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
SET (CMAKE_CXX_FLAGS_RELEASE "-O4 -DNDEBUG")
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")

find_program(LLVM_AR llvm-ar REQUIRED)
find_program(LLVM_LD llvm-ld REQUIRED)
find_program(LLVM_NM llvm-nm REQUIRED)
find_program(LLVM_OBJDUMP llvm-objdump REQUIRED)
find_program(LLVM_RANLIB llvm-ranlib REQUIRED)
message(STATUS "llvm-ar: ${LLVM_AR}")

SET (CMAKE_AR "${LLVM_AR}")
SET (CMAKE_LINKER "${LLVM_LD}")
SET (CMAKE_NM "${LLVM_NM}")
SET (CMAKE_OBJDUMP "${LLVM_OBJDUMP}")
SET (CMAKE_RANLIB "${LLVM_RANLIB}")
endif(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND ${USE_LLVM_GOLD})

# windows crap
if(WIN32)
add_definitions(-DWIN32 -D_WIN32)
Expand Down Expand Up @@ -284,9 +311,9 @@ if(NOT SUDO_FOUND)
endif(NOT SUDO_FOUND)

# Find the required SDL libraries
find_package(SDL)
find_package(SDL_sound)
find_package(SDL_image)
find_package(SDL REQUIRED)
find_package(SDL_sound REQUIRED)
find_package(SDL_image REQUIRED)

# Begin the madness!
#############################################################################################
Expand Down
2 changes: 1 addition & 1 deletion src/client/CMakeLists.txt
Expand Up @@ -78,7 +78,7 @@ add_dependencies(${PROJECT_NAME} botlib${CMAKE_STATIC_LIBRARY_SUFFIX} jpeg-6${CM
# Our executable
if(NOT APPLE)
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE C PREFIX "" SUFFIX "")
target_link_libraries(${PROJECT_NAME} ${SDL_LIBRARY} ${SDL_IMAGE_LIBRARIES} GL dl m botlib${CMAKE_STATIC_LIBRARY_SUFFIX} jpeg-6${CMAKE_STATIC_LIBRARY_SUFFIX} splines${CMAKE_STATIC_LIBRARY_SUFFIX})
target_link_libraries(${PROJECT_NAME} ${SDL_LIBRARY} ${SDL_IMAGE_LIBRARIES} SDL_image GL dl m botlib${CMAKE_STATIC_LIBRARY_SUFFIX} jpeg-6${CMAKE_STATIC_LIBRARY_SUFFIX} splines${CMAKE_STATIC_LIBRARY_SUFFIX})
else(NOT APPLE)
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE C PREFIX "" SUFFIX "" LINK_FLAGS "-framework Carbon -framework GLUT -framework OpenGL -framework IOKit -framework AudioToolbox -framework CoreAudio -framework CoreServices -framework Cocoa -framework EventKit")
target_link_libraries(${PROJECT_NAME} ${SDL_LIBRARY} ${SDL_IMAGE_LIBRARIES} dl m botlib${CMAKE_STATIC_LIBRARY_SUFFIX} jpeg-6${CMAKE_STATIC_LIBRARY_SUFFIX} splines${CMAKE_STATIC_LIBRARY_SUFFIX})
Expand Down

0 comments on commit 9ed0bf7

Please sign in to comment.