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 task1.c task.c trace.c ) ADD_EXECUTABLE(task2 bin2.c task2.c task.c trace.c ) ADD_EXECUTABLE(task3 bin3.c task3.c task.c trace.c ) ADD_EXECUTABLE(task4 bin4.c task4.c task.c trace.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}) ADD_TARGET_PROPERTIES(task2 LINK_FLAGS -lm ${COMMON_LDFLAGS}) ADD_TARGET_PROPERTIES(task2 COMPILE_FLAGS ${COMMON_CFLAGS}) ADD_TARGET_PROPERTIES(task3 LINK_FLAGS -lm ${COMMON_LDFLAGS}) ADD_TARGET_PROPERTIES(task3 COMPILE_FLAGS ${COMMON_CFLAGS}) ADD_TARGET_PROPERTIES(task4 LINK_FLAGS -lm ${COMMON_LDFLAGS}) ADD_TARGET_PROPERTIES(task4 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)