CMake is a special little snowflake ☃

This commit is contained in:
Felix Kaaman 2015-03-03 12:58:49 +01:00
parent 63444dd4d0
commit 7083dbb2c8
4 changed files with 39 additions and 31 deletions

View File

@ -1,5 +1,5 @@
#/CMakeLists.txt #/CMakeLists.txt
cmake_minimum_required (VERSION 2.8) cmake_minimum_required (VERSION 2.8.4)
project (iceball) project (iceball)
#set(CMAKE_BINARY_DIR build) #set(CMAKE_BINARY_DIR build)
@ -24,11 +24,39 @@ if (WIN32)
if (MSVC) if (MSVC)
set_source_files_properties(filename.c PROPERTIES LANGUAGE CXX ) set_source_files_properties(filename.c PROPERTIES LANGUAGE CXX )
endif (MSVC) endif (MSVC)
LINK_DIRECTORIES(../winlibs)
include_directories(winlibs/glew) include_directories("${CMAKE_CURRENT_SOURCE_DIR}/winlibs")
include_directories(winlibs/lua) include_directories("${CMAKE_CURRENT_SOURCE_DIR}/winlibs/glew")
include_directories(winlibs/SDL) include_directories("${CMAKE_CURRENT_SOURCE_DIR}/winlibs/lua")
include_directories(winlibs/zlib) include_directories("${CMAKE_CURRENT_SOURCE_DIR}/winlibs/SDL")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/winlibs/zlib")
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/winlibs")
endif (WIN32) endif (WIN32)
# here be sackit
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/xlibinc")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/xlibinc")
# find the hidden treasures
find_package(ENet REQUIRED)
find_package(PNG REQUIRED)
find_package(SDL REQUIRED)
find_package(zlib REQUIRED)
find_package(Lua REQUIRED)
find_package(GLEW REQUIRED)
find_package(OpenGL REQUIRED)
# include the outcasts
include_directories(
${PNG_INCLUDE_DIRS}
${ENet_INCLUDE_DIRS}
${SACKIT_INCLUDE_DIR}
${ZLIB_INCLUDE_DIRS}
${GLEW_INCLUDE_DIRS}
${SDL_INCLUDE_DIR}
${LUA_INCLUDE_DIR}
)
add_subdirectory(src) add_subdirectory(src)

View File

@ -19,6 +19,7 @@ FIND_PATH(ENet_INCLUDE_DIRS enet/enet.h
$ENV{ENETDIR} $ENV{ENETDIR}
/usr/local /usr/local
/usr /usr
"${CMAKE_CURRENT_SOURCE_DIR}/winlibs"
PATH_SUFFIXES include PATH_SUFFIXES include
) )
@ -28,6 +29,7 @@ FIND_LIBRARY(ENet_LIBRARY
$ENV{ENETDIR} $ENV{ENETDIR}
/usr/local /usr/local
/usr /usr
"${CMAKE_CURRENT_SOURCE_DIR}/winlibs"
PATH_SUFFIXES lib PATH_SUFFIXES lib
) )

View File

@ -21,6 +21,7 @@ FIND_PATH(LUA_INCLUDE_DIR lua.h
/opt/local /opt/local
/opt/csw /opt/csw
/opt /opt
"${CMAKE_CURRENT_SOURCE_DIR}/winlibs"
) )
FIND_LIBRARY(LUA_LIBRARY FIND_LIBRARY(LUA_LIBRARY
@ -37,6 +38,7 @@ FIND_LIBRARY(LUA_LIBRARY
/opt/local /opt/local
/opt/csw /opt/csw
/opt /opt
"${CMAKE_CURRENT_SOURCE_DIR}/winlibs"
) )
if(LUA_LIBRARY) if(LUA_LIBRARY)

View File

@ -10,30 +10,6 @@ set(SOFT_FILES softgm/render.c softgm/render_img.c)
source_group(softgm FILES ${SOFT_FILES}) source_group(softgm FILES ${SOFT_FILES})
source_group(lua FILES ${LUA_FILES}) source_group(lua FILES ${LUA_FILES})
# look for required libraries
find_package(ENet REQUIRED)
find_package(PNG REQUIRED)
find_package(SDL REQUIRED)
find_package(zlib REQUIRED)
find_package(Lua REQUIRED)
find_package(GLEW REQUIRED)
find_package(OpenGL REQUIRED)
# here be sackit
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/../xlibinc")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../xlibinc")
# include
include_directories(
${PNG_INCLUDE_DIRS}
${ENet_INCLUDE_DIRS}
${SACKIT_INCLUDE_DIR}
${ZLIB_INCLUDE_DIRS}
${GLEW_INCLUDE_DIRS}
${SDL_INCLUDE_DIR}
${LUA_INCLUDE_DIR}
)
# iceball target # iceball target
add_executable(iceball ${MAIN_FILES} ${LUA_FILES} ${GL_FILES}) add_executable(iceball ${MAIN_FILES} ${LUA_FILES} ${GL_FILES})
target_link_libraries(iceball ${PNG_LIBRARIES} ${ENet_LIBRARIES} sackit ${LUA_LIBRARIES} ${SDL_LIBRARY} ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES}) target_link_libraries(iceball ${PNG_LIBRARIES} ${ENet_LIBRARIES} sackit ${LUA_LIBRARIES} ${SDL_LIBRARY} ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES})
@ -41,5 +17,5 @@ set_target_properties(iceball PROPERTIES COMPILE_DEFINITIONS "USE_OPENGL")
# iceball-dedi target # iceball-dedi target
add_executable(iceball-dedi EXCLUDE_FROM_ALL ${MAIN_FILES} ${LUA_FILES}) add_executable(iceball-dedi EXCLUDE_FROM_ALL ${MAIN_FILES} ${LUA_FILES})
target_link_libraries(iceball-dedi ${PNG_LIBRARIES} ${ENet_LIBRARIES} ${LUA_LIBRARIES} ${SDL_LIBRARY} ${SDL_LIBRARY}) target_link_libraries(iceball-dedi ${PNG_LIBRARIES} ${ENet_LIBRARIES} ${LUA_LIBRARIES} ${SDL_LIBRARY})
set_target_properties(iceball-dedi PROPERTIES COMPILE_DEFINITIONS "DEDI") set_target_properties(iceball-dedi PROPERTIES COMPILE_DEFINITIONS "DEDI")