hedgewars/CMakeLists.txt
author displacer
Tue, 21 Nov 2006 16:50:09 +0000
changeset 256 48aeb69ef572
parent 226 be2e08b0109f
child 271 f2f9a3d5b441
permissions -rw-r--r--
noexecutestack object files generation fixed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
226
be2e08b0109f fix finding of delphi compiler
unc0rr
parents: 220
diff changeset
     1
set(dcc32_tryexe dcc32.exe)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
     2
set(fpc_tryexe fpc)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
     3
set(hwengine_project "hwengine.dpr")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
     4
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
     5
set(engine_sources
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
     6
	${hwengine_project}
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
     7
	SDLh.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
     8
	uAI.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
     9
	uAIActions.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    10
	uAIAmmoTests.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    11
	uAIMisc.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    12
	uAIThinkStack.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    13
	uCollisions.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    14
	uConsole.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    15
	uConsts.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    16
	uGame.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    17
	uGears.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    18
	uIO.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    19
	uKeys.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    20
	uLand.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    21
	uLandGraphics.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    22
	uLandObjects.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    23
	uLandTemplates.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    24
	uLocale.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    25
	uMisc.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    26
	uRandom.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    27
	uSound.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    28
	uStore.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    29
	uTeams.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    30
	uWorld.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    31
	CCHandlers.inc
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    32
	GSHandlers.inc
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    33
	HHHandlers.inc
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    34
	options.inc
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    35
	tunsetborder.inc
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    36
	)
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    37
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    38
find_program(dcc32_executable ${dcc32_tryexe})
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    39
find_program(fpc_executable ${fpc_tryexe})
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    40
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    41
if (dcc32_executable)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    42
	 exec_program(${dcc32_executable} ARGS "--version" OUTPUT_VARIABLE dcc32_output)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    43
endif (dcc32_executable)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    44
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    45
if (fpc_executable)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    46
	 exec_program(${fpc_executable} ARGS "-h" OUTPUT_VARIABLE fpc_output)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    47
endif (fpc_executable)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    48
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    49
string(REGEX MATCH "[0-9]+\\.[0-9]+" dcc32version "${dcc32_output}")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    50
if (dcc32version)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    51
	set(pascal_compiler ${dcc32_executable})
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    52
	set(pascal_compiler_flags "-B" "-W" "-E${EXECUTABLE_OUTPUT_PATH}" ${hwengine_project})
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    53
else (dcc32version)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    54
	string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" fpc_version "${fpc_output}")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    55
	if (fpc_version)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    56
		string(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" fpc_vers_major "${fpc_version}")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    57
		string(REGEX REPLACE "[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" fpc_vers_minor "${fpc_version}")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    58
		string(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" fpc_vers_patch "${fpc_version}")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    59
		math(EXPR fpc_ver "${fpc_vers_major}*10000 + ${fpc_vers_minor}*100 + ${fpc_vers_patch}")
196
993cf173218b - Many small fixes
unc0rr
parents: 193
diff changeset
    60
		if (fpc_ver LESS "010904")
993cf173218b - Many small fixes
unc0rr
parents: 193
diff changeset
    61
			message("Minimum required version of FreePascal is 1.9.4")
993cf173218b - Many small fixes
unc0rr
parents: 193
diff changeset
    62
		else (fpc_ver LESS "010904")
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    63
			set(pascal_compiler ${fpc_executable})
256
48aeb69ef572 noexecutestack object files generation fixed
displacer
parents: 226
diff changeset
    64
			set(pascal_compiler_flags "-k-z" "-knoexecstack" "-B" "-Sd" "-Xs" "-OG" "-O2" "-FE${EXECUTABLE_OUTPUT_PATH}" "-Cs2000000" ${hwengine_project})
196
993cf173218b - Many small fixes
unc0rr
parents: 193
diff changeset
    65
		endif (fpc_ver LESS "010904")
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    66
	endif (fpc_version)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    67
endif (dcc32version)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    68
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    69
if (NOT pascal_compiler)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    70
	message(FATAL_ERROR "No Pascal compiler found!")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    71
endif (NOT pascal_compiler)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    72
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    73
add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}"
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    74
                  COMMAND "${pascal_compiler}" 
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    75
                  ARGS ${pascal_compiler_flags}
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    76
                  MAIN_DEPENDENCY ${hwengine_project}
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    77
                  DEPENDS ${engine_sources}
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    78
                  )
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    79
                   
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    80
add_custom_target(hwengine ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}")
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    81
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    82
install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION bin)