ArcEmu: Cmake 2.8.10 Vs 2.8.11 - ArcEmu

Jump to content

Toggle shoutbox Lastest Announcements

dfighter  : (07 December 2014 - 12:06 PM) Arcemu is in hibernation mode, please read http://arcemu.org/fo...showtopic=26903
dfighter  : (01 January 2013 - 05:56 PM) Arcemu wishes you all a happy new year!
Hasbro  : (12 September 2012 - 10:01 AM) Please excuse our outage from the web! Our web host had a major malfunction!
dfighter  : (01 September 2012 - 04:05 PM) Since the spam bots just don't want to stop, I've enabled admin verification when registering.
dfighter  : (23 January 2012 - 09:56 PM) Please note that from now on you will need to confirm your email on the wiki in order to edit it!
Hasbro  : (31 December 2011 - 12:50 PM) Happy New Years all!
Navid  : (26 December 2011 - 04:09 AM) Merry Christmas !!!!!! Happy holidays all :)
WAmadeus  : (24 December 2011 - 03:54 PM) Merry Christmas to all!
dfighter  : (24 December 2011 - 11:05 AM) The Arcemu team wishes y'all a Merry Christmukkah!
Hasbro  : (05 October 2011 - 12:53 PM) Looking for web designers for upcoming web related project. If you're interested in designing user interfaces contact me
dfighter  : (02 September 2011 - 03:47 PM) So who here wants vehicles in Arcemu? :P http://arcemu.org/fo...showtopic=25440
Hasbro  : (14 August 2011 - 03:25 PM) Join us on irc, grab an irc client and connect to irc.freenode.net join channel #arcemu /server irc.freenode.net:6667 /join #arcemu
jackpoz  : (03 August 2011 - 05:33 AM) to all Lua Engine (old one) users: please check http://arcemu.org/fo...showtopic=25274
Hasbro  : (20 May 2011 - 05:27 PM) Looking for people experienced with CMake configuration and setup! Contact me asap
Hasbro  : (15 May 2011 - 05:03 PM) ArcEmu is recruiting C++ programmers, contact Hasbro if interested.
paroxysm  : (03 May 2011 - 06:26 PM) Updated luabridge gossip example to describe the whole gossip creation process rather than just how to create menu. Gossip tutorial
paroxysm  : (23 April 2011 - 11:35 AM) Lua writers can refer to the Luabridge Tutorials section in the Wiki to learn how to write gossip code correctly.
Hasbro  : (20 April 2011 - 05:22 PM) Thank you for your continuous contribution of bug reports, we are working on them.
Hasbro  : (17 April 2011 - 03:20 AM) Please consider donating to support our bills. Donations can be sent using PayPal to donations@arcemu.org - Thank you for your support.
paroxysm  : (10 April 2011 - 12:43 AM) Refer to the Luabridge Tutorials section in the Wiki to learn the new syntax of luabridge.
Resize Shouts Area

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Cmake 2.8.10 Vs 2.8.11

#1 User is offline   Magnifikator 

  • Interested
  • PipPipPipPip
  • Group: Members
  • Posts: 398
  • Joined: 05-October 11
  • Gender:Male
  • Location:Switzerland
  • Server OS:Windows

Posted 03 July 2013 - 09:25 AM

With CMake 2.8.10.2 I can prepare the build files without problem.

But with CMake 2.8.11.1 something is going wrong. Some of the compiler switches are missing.

/Zm400 is missing in CMAKE_CXX_FLAGS and CMAKE_C_FLAGS
/STACK:10000000 is missing in CMAKE_EXE_LINKER_FLAGS, CMAKE_MODULE_LINKER_FLAGS and CMAKE_SHARED_LINKER_FLAGS

After adding these switches manual I still have linker errors.

I'm using VS 2010 SP1

I recommend to use CMake 2.8.10.2 atm.
Try out the LoE ArcEmu World database. Please visit dev.LandOfElves.net.

Posted Image


0

#2 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 03 July 2013 - 12:41 PM

Thanks for the heads up!
However others have found newer CMakes to have problems as well.
See this topic for example
"The demand for free goods is infinite."
0

#3 User is offline   Magnifikator 

  • Interested
  • PipPipPipPip
  • Group: Members
  • Posts: 398
  • Joined: 05-October 11
  • Gender:Male
  • Location:Switzerland
  • Server OS:Windows

Posted 05 July 2013 - 07:25 AM

As far as I have I seen CMake has dropped the /Zm flag because of different user claims in the past.

Before there was a default /Zm1000. And the script has replace this value to /Zm400.

Putting this before the REPLACE sets a default again:

	if( NOT CMAKE_CXX_FLAGS MATCHES /Zm )
		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zm400" CACHE STRING "" FORCE)
	endif()


Edit:
Ok, I found it:
This line produces on 2.8.10 false and on 2.8.11 true:
IF( CMAKE_SYSTEM_PROCESSOR MATCHES "[xX]64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "[xX]86_64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "[aA][mM][dD]64" OR CMAKE_GENERATOR MATCHES Win64*)


Replace it trough this (produces false in vers. 10 and 11):
if(PLATFORM EQUAL 64)


However I don't understand the sense of this. I thought with a Win64 OS I have a 64bit platform.

See also here: https://github.com/a...cemu/issues/359
Try out the LoE ArcEmu World database. Please visit dev.LandOfElves.net.

Posted Image


0

#4 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 06 July 2013 - 02:42 PM

Well, unless the variable PLATFORM is set by CMake ( which I could find no evidence yet ), it's going to be empty on every platform.
In which case comparing it to anything other than an empty string will yield a false result.
"The demand for free goods is infinite."
0

#5 User is offline   Magnifikator 

  • Interested
  • PipPipPipPip
  • Group: Members
  • Posts: 398
  • Joined: 05-October 11
  • Gender:Male
  • Location:Switzerland
  • Server OS:Windows

Posted 07 July 2013 - 03:34 AM

Your are right. I should read other peoples sources more careful. PLATFORM was there an equivalent to our IS_64BIT.

If figured out what exactly was the problem on MY system with this test script:
message(${CMAKE_SYSTEM_PROCESSOR})
# returns x86 with 2.8.10.2 and AMD64 with 2.8.11.1

message(${CMAKE_GENERATOR})
message(${CMAKE_SIZEOF_VOID_P})


Cmake 10 returns x86 for my CPU and Cmake 11 returns AMD64.

Therefore the whole expression was giving TRUE and I was trying to compile a 64 bit version what was resulting in errors.

Other people using this interesting check for the platform:
CMAKE_SIZEOF_VOID_P MATCHES 8

On my Win64 OS it gives 4 :-)
So I don't have really a 64 bit system (that proofs what I ever had in mind: Win7 is a colourful interface of a DOS core :D )
Maybe on Linux and/or Mac it gives 8.

So my proposal is this:
# check for 64bit platform version
if( CMAKE_SIZEOF_VOID_P MATCHES 8 OR CMAKE_GENERATOR MATCHES Win64*)
	message(STATUS "64bit platform detected")
	#define for 64bit
	SET( GLOBAL_DEFINES ${GLOBAL_DEFINES} -"DX64")
	SET( IS_64BIT TRUE)
	if(CMAKE_GENERATOR MATCHES NMake*)
		SET( GLOBAL_DEFINES ${GLOBAL_DEFINES} "-bigobj")
	endif()
endif()


This checks if I am on a true 64bit system or have a Visual Studio Professional that can compile 64bit.

BTW: Now I can compile with CMAKE 2.8.11 and VS 11(2012)
Try out the LoE ArcEmu World database. Please visit dev.LandOfElves.net.

Posted Image


0

#6 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 07 July 2013 - 01:13 PM

Well there are multiple models for pointer length, so it's not really possible to deduce the platform from checking it.
Also I think the WIN64 generator is intended for 64bit builds. So until now we were just lucky that we could get away with using the same generator for both 32 and 64 bit projects.
Probably they just fixed a bug between 2.8.10 and 2.8.11 :D
"The demand for free goods is infinite."
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users