使用我们的CMake构建系统,我构建了一些库和一些可执行文件.构建产品都输出到特定文件夹.
现在的问题是我有VS2010和VS2008工具链,但我只需要VS2008工具链用于VS2008库.输出可执行文件是两个工具链的win32目标,所以我只需要通过VS2010工具链构建一次可执行文件,而VS2008工具链应该只跳过可执行文件并只构建所需的库(这样可以节省构建时间).
CMake基本脚本和整体设置也可能在未来交付给客户,因此如果CMake中有一种方法可以禁用某些目标,例如通用方式的所有可执行文件,那将是非常好的.否则我必须在我的CMakeLists.txt中编写许多大的IF(BUILD_EXECUTABLES)... ENDIF()构造我的可执行文件设置,而当我忘记它时没有CMake给我错误.
通过一些批处理文件触发构建.理想情况下,我想通过-D选项将变量传递给cmake(例如"-D BUILD_EXECUTABLES = false")
我试图包装ADD_EXECUTABLE宏,但这不起作用,因为我有像TARGET_LINK_LIBRARIES这样的调用,然后抱怨不存在的目标.
我也可以将输出目录设置为一些可以在之后删除的垃圾文件夹,但是(如前所述)不会节省构建时间(我们有一个非常庞大的项目)
任何想法如何以干净和通用的方式实现这一目标?
我想为Mac OS X构建一个包含4个子包的安装包.子包是使用pkgbuild构建的.最终的包使用product.xml构建,使用Distribution.xml进行欢迎和许可文本以及安装位置选择.
现在我想在安装成功后运行脚本.特别是在所有打包的收据都由安装程序写入之后.
据我所知,手册页和文档以及其他有用的链接我应该使用postflight脚本.不幸的是我无法让它发挥作用.我将它命名为postflight并使用--script选项添加到pkgbuild的子包中,但似乎pkgbuild不支持postflight脚本.当我将其命名为postinstall时,它会在收据写入之前运行.
我需要在写入收据后运行,因为我想使用pkgutil工具为XCode编写一个xcconfig文件,以构成其他软件包的安装位置的位置.
我已经尝试通过在扩展的pkg中添加Scripts /文件夹来使用expand-flatten hack,但是在我展平之后这似乎被忽略了.
有没有办法满足我的需求?(将我的包的选定安装位置写入子包的安装位置中的文件)
如果可能的话,我想避免使用已弃用的packagemaker工具,至少如果还有其他更好的方法.
提前致谢
这种反作弊技术是否适用于使用私人服务器的多人游戏(公开未知的可执行文件):
当客户启动游戏时,它将每天自动更新(使用启动器).服务器也会自行更新.除非有真正的补丁,否则更新仅包含游戏对象内存布局,网络代码和着色器中的更改.这是使用自动生成和随机化(C++)类的自动化系统完成的.也许它还可以在层次结构中添加假对象,以使识别对象更难.
这样我希望比破解者更快地更新游戏,并且将反向工程,更新和发布/更新新的作弊.
这会起作用还是黑客能以某种方式解决这个机制?他们会每天做这项工作还是可以在某些时候自动完成?我该怎么做才能改进这个系统?
似乎随机化内存布局在长期内没有帮助,因为可以通过跟随可执行文件中的函数调用并从该代码中提取指针偏移来或多或少地轻松地提取布局.因此,为了有效地防止这种情况,调用结构和代码本身也需要随机化.
有没有很好的方法呢?这对自动化破解是否有效?
anti-cheat ×1
c++ ×1
cheat-engine ×1
cmake ×1
installer ×1
macos ×1
multiplayer ×1
pkgbuild ×1
productbuild ×1