{"action":"created","issue":{"url":"https://api.github.com/repos/fabriciocolombo/delphi-rest-client-api/issues/42","labels_url":"https://api.github.com/repos/fabriciocolombo/delphi-rest-client-api/issues/42/labels{/name}","comments_url":"https://api.github.com/repos/fabriciocolombo/delphi-rest-client-api/issues/42/comments","events_url":"https://api.github.com/repos/fabriciocolombo/delphi-rest-client-api/issues/42/events","html_url":"https://github.com/fabriciocolombo/delphi-rest-client-api/issues/42","id":75589183,"number":42,"title":"Add support for Delphi XE8","user":{"login":"RobertoSchneiders","id":2729095,"avatar_url":"https://avatars.githubusercontent.com/u/2729095?v=3","gravatar_id":"","url":"https://api.github.com/users/RobertoSchneiders","html_url":"https://github.com/RobertoSchneiders","followers_url":"https://api.github.com/users/RobertoSchneiders/followers","following_url":"https://api.github.com/users/RobertoSchneiders/following{/other_user}","gists_url":"https://api.github.com/users/RobertoSchneiders/gists{/gist_id}","starred_url":"https://api.github.com/users/RobertoSchneiders/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RobertoSchneiders/subscriptions","organizations_url":"https://api.github.com/users/RobertoSchneiders/orgs","repos_url":"https://api.github.com/users/RobertoSchneiders/repos","events_url":"https://api.github.com/users/RobertoSchneiders/events{/privacy}","received_events_url":"https://api.github.com/users/RobertoSchneiders/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/fabriciocolombo/delphi-rest-client-api/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-05-12T12:41:54Z","updated_at":"2015-05-13T14:36:52Z","closed_at":null,"body":"I don't have the XE8 version yet, but some people are requesting this. Anyone have this version and can do this changes?\r\n\r\nJust add this to the line 117 of the DelphiRest.inc file and run the tests.\r\n```\r\n{$IFDEF VER290} // RAD Studio XE8\r\n  {$DEFINE DELPHI_7_UP}\r\n  {$DEFINE DELPHI_2007_UP}\r\n  {$DEFINE DELPHI_2009_UP}\r\n  {$DEFINE DELPHI_2010_UP}\r\n  {$DEFINE DELPHI_XE_UP}\r\n  {$DEFINE DELPHI_XE2_UP}\r\n  {$DEFINE DELPHI_XE3_UP}\r\n  {$DEFINE DELPHI_XE4_UP}\r\n  {$DEFINE DELPHI_XE5_UP}\r\n  {$DEFINE DELPHI_XE6_UP}\r\n  {$DEFINE DELPHI_XE7}\r\n  {$DEFINE DELPHI_XE7_UP}\r\n  {$DEFINE DELPHI_XE8}\r\n  {$DEFINE DELPHI_XE8_UP}\r\n{$ENDIF VER290}\r\n```\r\n\r\nMaybe we can find a better way to do this and avoid this changes for every new version. "},"comment":{"url":"https://api.github.com/repos/fabriciocolombo/delphi-rest-client-api/issues/comments/101689624","html_url":"https://github.com/fabriciocolombo/delphi-rest-client-api/issues/42#issuecomment-101689624","issue_url":"https://api.github.com/repos/fabriciocolombo/delphi-rest-client-api/issues/42","id":101689624,"user":{"login":"ronaldhoek","id":5037087,"avatar_url":"https://avatars.githubusercontent.com/u/5037087?v=3","gravatar_id":"","url":"https://api.github.com/users/ronaldhoek","html_url":"https://github.com/ronaldhoek","followers_url":"https://api.github.com/users/ronaldhoek/followers","following_url":"https://api.github.com/users/ronaldhoek/following{/other_user}","gists_url":"https://api.github.com/users/ronaldhoek/gists{/gist_id}","starred_url":"https://api.github.com/users/ronaldhoek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ronaldhoek/subscriptions","organizations_url":"https://api.github.com/users/ronaldhoek/orgs","repos_url":"https://api.github.com/users/ronaldhoek/repos","events_url":"https://api.github.com/users/ronaldhoek/events{/privacy}","received_events_url":"https://api.github.com/users/ronaldhoek/received_events","type":"User","site_admin":false},"created_at":"2015-05-13T14:36:52Z","updated_at":"2015-05-13T14:36:52Z","body":"I would suggest this approach for 'DelphiRest.inc' - this will notify you when a unknown version is used for compiling the project en requires reviewing this 'code' before making assuptions on why somthing else does not work.\r\n\r\n```Pascal\r\n(* Full Delphi Version Compiler Directives list could be found here: https://gist.github.com/2485849*)\r\n\r\n{$DEFINE USE_INDY}\r\n{$DEFINE USE_WIN_HTTP}\r\n{$DEFINE USE_WIN_INET}\r\n\r\n// Delphi 7\r\n{$DEFINE DELPHI_7_UP}\r\n{$IFDEF VER150}\r\n  {$DEFINE DELPHI_7}\r\n  {$UNDEF USE_INDY}\r\n{$ELSE}\r\n  //Delphi 2007\r\n  {$DEFINE DELPHI_2007_UP}\r\n  {$IFDEF VER185}\r\n    {$DEFINE DELPHI_2007}\r\n  {$ELSE}\r\n     // RAD Studio 2009\r\n    {$DEFINE DELPHI_2009_UP}\r\n    {$IFDEF VER200}\r\n      {$DEFINE DELPHI_2009}\r\n    {$ELSE}\r\n      // RAD Studio 2010\r\n      {$DEFINE DELPHI_2010_UP}\r\n      {$IFDEF VER210}\r\n        {$DEFINE DELPHI_2010}\r\n      {$ELSE}\r\n        // RAD Studio XE\r\n        {$DEFINE DELPHI_XE_UP}\r\n        {$IFDEF VER220}\r\n          {$DEFINE DELPHI_XE}\r\n        {$ELSE}\r\n          // RAD Studio XE2\r\n          {$DEFINE DELPHI_XE2_UP}\r\n          {$IFDEF VER230}\r\n            {$DEFINE DELPHI_XE2}\r\n          {$ELSE}\r\n            // RAD Studio XE3\r\n            {$DEFINE DELPHI_XE3_UP}\r\n            {$IFDEF VER240}\r\n              {$DEFINE DELPHI_XE3}\r\n            {$ELSE}\r\n              // RAD Studio XE4\r\n              {$DEFINE DELPHI_XE4_UP}\r\n              {$IFDEF VER250}\r\n                {$DEFINE DELPHI_XE4}\r\n              {$ELSE}\r\n                // RAD Studio XE5\r\n                {$DEFINE DELPHI_XE5_UP}\r\n                {$IFDEF VER260}\r\n                  {$DEFINE DELPHI_XE5}\r\n                {$ELSE}\r\n                  // RAD Studio XE6\r\n                  {$DEFINE DELPHI_XE6_UP}\r\n                  {$IFDEF VER270}\r\n                    {$DEFINE DELPHI_XE6}\r\n                  {$ELSE}\r\n                    // RAD Studio XE7\r\n                    {$DEFINE DELPHI_XE7_UP}\r\n                    {$IFDEF VER280}\r\n                      {$DEFINE DELPHI_XE7}\r\n                    {$ELSE}\r\n                      // RAD Studio XE8\r\n                      {$DEFINE DELPHI_XE8_UP}\r\n                      {$IFDEF VER290}\r\n                        {$DEFINE DELPHI_XE8}\r\n                      {$ELSE}\r\n                        !!! UNKNOW OR UNSUPPORTED DELPHI VERSION !!!\r\n                      {$ENDIF VER290}\r\n                    {$ENDIF VER280}\r\n                  {$ENDIF VER270}\r\n                {$ENDIF VER260}\r\n              {$ENDIF VER250}\r\n            {$ENDIF VER240}\r\n          {$ENDIF VER230}\r\n        {$ENDIF VER220}\r\n      {$ENDIF VER210}\r\n    {$ENDIF VER200}\r\n  {$ENDIF VER185}\r\n{$ENDIF VER150}\r\n\r\n{$IFDEF DELPHI_2010_UP}\r\n  {$DEFINE USE_GENERICS}\r\n{$ENDIF}\r\n\r\n{$IFNDEF DELPHI_XE_UP}\r\n  {$DEFINE USE_SUPER_OBJECT}\r\n{$ENDIF}\r\n\r\n{$IFDEF MACOS}\r\n  {$UNDEF USE_SUPER_OBJECT}\r\n  {$UNDEF USE_WIN_HTTP}\r\n  {$UNDEF USE_WIN_INET}  \r\n{$ENDIF}\r\n```\r\nHowever I would suggest banning out the use of 'DELPHI_????_UP' directives in the units themselves. These are not informative on why some code is being used or not.\r\nThis is something, which can be done later (apart from the suggest modification of 'DelphiRest.inc' above) and would take more effort.\r\n\r\nEx.\r\n```Pascal\r\n    {$IFDEF DELPHI_XE6_UP}, Json{$ENDIF}\r\n```\r\nChange to:\r\n```Pascal\r\n    {$IFDEF USE_DELPHI_JSON}, Json{$ENDIF}\r\n```\r\nBy adding the code below to 'DelphiRest.inc' you can specify at a central point, for what purpose the define is used.\r\n```Pascal\r\n{$IFDEF DELPHI_XE6_UP}\r\n  // Include the use of Delphi own JSon library (available from XE 6)\r\n  {$DEFINE USE_DELPHI_JSON}\r\n{$ENDIF}\r\n\r\nWhen the 'rules' for the define change, this change is applied to all units...\r\n"}}