# Variables
-set(DEPS_DIR "${CMAKE_SOURCE_DIR}/../deps/")
+set(DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../deps/")
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
)
include_directories(SYSTEM ${DEPS_DIR})
-include_directories(BEFORE ${CMAKE_SOURCE_DIR})
+include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
# System specific options
# Common sources
set(COMMON_SOURCES
+ "${CMAKE_CURRENT_BINARY_DIR}/types.c"
"${DEPS_DIR}/asprintf/asprintf.c"
"${DEPS_DIR}/dragonnet/addr.c"
"${DEPS_DIR}/dragonnet/listen.c"
perlin.c
physics.c
terrain.c
- types.c
)
# Client
# Version
add_custom_target(version
- COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${CMAKE_SOURCE_DIR} -P ${CMAKE_SOURCE_DIR}/version.cmake
+ COMMAND ${CMAKE_COMMAND} -DBINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/version.cmake
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
)
add_dependencies(dragonblocks version)
# Types
add_custom_command(
- OUTPUT "${CMAKE_SOURCE_DIR}/types.c" "${CMAKE_SOURCE_DIR}/types.h"
- COMMAND "${CMAKE_SOURCE_DIR}/mktypes.sh"
- MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/types.def"
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ OUTPUT types.c types.h
+ MAIN_DEPENDENCY types.def
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/../deps/protogen/protogen.lua"
+ COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/mktypes.sh" "${CMAKE_CURRENT_SOURCE_DIR}"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
)
add_custom_target(types
- DEPENDS "${CMAKE_SOURCE_DIR}/types.c" "${CMAKE_SOURCE_DIR}/types.h"
+ DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/types.c" "${CMAKE_CURRENT_BINARY_DIR}/types.h"
)
add_dependencies(dragonblocks types)
-#!/bin/sh
-LUA_PATH="../deps/protogen/?.lua;../deps/protogen/?/init.lua" "../deps/protogen/protogen.lua"
+#!/bin/bash
+SOURCE_DIR="$1"
+if [[ "$SOURCE_DIR" = "" ]]; then
+ SOURCE_DIR="."
+fi
+
+export LUA_PATH="$SOURCE_DIR/../deps/protogen/?.lua;$SOURCE_DIR/../deps/protogen/?/init.lua"
+"$SOURCE_DIR/../deps/protogen/protogen.lua" "$SOURCE_DIR/types.def"