63 lines
1.9 KiB
CMake
63 lines
1.9 KiB
CMake
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR)
|
||
|
|
||
|
PROJECT(ovm C)
|
||
|
|
||
|
MACRO(ADD_TARGET_PROPERTIES _target _name)
|
||
|
SET(_properties)
|
||
|
FOREACH(_prop ${ARGN})
|
||
|
SET(_properties "${_properties} ${_prop}")
|
||
|
ENDFOREACH(_prop)
|
||
|
GET_TARGET_PROPERTY(_old_properties ${_target} ${_name})
|
||
|
MESSAGE("adding property to ${_target} ${_name}:" ${_properties})
|
||
|
IF(NOT _old_properties)
|
||
|
# in case it's NOTFOUND
|
||
|
SET(_old_properties)
|
||
|
ENDIF(NOT _old_properties)
|
||
|
SET_TARGET_PROPERTIES(${_target} PROPERTIES ${_name} "${_old_properties} ${_properties}")
|
||
|
ENDMACRO(ADD_TARGET_PROPERTIES)
|
||
|
|
||
|
INCLUDE(CheckCSourceCompiles)
|
||
|
INCLUDE(CheckIncludeFiles)
|
||
|
INCLUDE(CheckFunctionExists)
|
||
|
INCLUDE(CheckVariableExists)
|
||
|
INCLUDE(CheckTypeSize)
|
||
|
INCLUDE(CheckLibraryExists)
|
||
|
INCLUDE(CMakeDetermineCCompiler)
|
||
|
INCLUDE(FindThreads)
|
||
|
INCLUDE(FindPkgConfig)
|
||
|
|
||
|
# glib/gthread
|
||
|
pkg_check_modules(GTHREAD REQUIRED gthread-2.0)
|
||
|
# pkg_check_modules(GMODULE REQUIRED gmodule-2.0)
|
||
|
|
||
|
ADD_EXECUTABLE(ovmjit
|
||
|
ovmjit.c
|
||
|
ovm.c
|
||
|
)
|
||
|
|
||
|
ADD_EXECUTABLE(task1
|
||
|
bin1.c
|
||
|
task.c
|
||
|
task1.c
|
||
|
)
|
||
|
|
||
|
SET(WARN_FLAGS "-g -O2 -g2 -Wall -Wmissing-declarations -Wdeclaration-after-statement -Wcast-align -Wsign-compare -Wnested-externs -Wpointer-arith -Wl,--as-needed")
|
||
|
# -Werror -Wbad-function-cast -Wmissing-prototypes
|
||
|
|
||
|
SET(COMMON_LDFLAGS "${GTHREAD_LDFLAGS} ${WARN_FLAGS}")
|
||
|
SET(COMMON_CFLAGS "${GTHREAD_CFLAGS} ${WARN_FLAGS}")
|
||
|
|
||
|
ADD_TARGET_PROPERTIES(ovmjit LINK_FLAGS ${COMMON_LDFLAGS})
|
||
|
ADD_TARGET_PROPERTIES(ovmjit COMPILE_FLAGS ${COMMON_CFLAGS})
|
||
|
|
||
|
ADD_TARGET_PROPERTIES(task1 LINK_FLAGS -lm ${COMMON_LDFLAGS})
|
||
|
ADD_TARGET_PROPERTIES(task1 COMPILE_FLAGS ${COMMON_CFLAGS})
|
||
|
|
||
|
IF(CMAKE_COMPILER_IS_GNUCC)
|
||
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -g -Wshadow -W -pedantic")
|
||
|
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2")
|
||
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0")
|
||
|
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_WITHDEBINFO} -O2")
|
||
|
ADD_DEFINITIONS(-D_GNU_SOURCE)
|
||
|
ENDIF(CMAKE_COMPILER_IS_GNUCC)
|