Skip to content

Instantly share code, notes, and snippets.

@ohga
Created November 22, 2017 03:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ohga/90510135e27482b8469c734d42cea41d to your computer and use it in GitHub Desktop.
Save ohga/90510135e27482b8469c734d42cea41d to your computer and use it in GitHub Desktop.
cmake_minimum_required(VERSION 2.8)
add_definitions("-DYANEURAOU_2017_EARLY_ENGINE")
# add_definitions("-DHELP_MATE_ENGINE")
# add_definitions("-DMATE_ENGINE")
set(CMAKE_CXX_COMPILER "clang++")
add_definitions("-std=c++14 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fpermissive")
add_definitions("-stdlib=libstdc++ -Wno-unused-parameter")
add_definitions("-D_LINUX -DUNICODE -DNO_EXCEPTIONS")
add_definitions("-DNDEBUG -DUSE_MAKEFILE")
set(CMAKE_EXE_LINKER_FLAGS "-flto -Wl,-s -v")
if(NOT DEFINED target)
set(target "avx2")
endif()
if(target STREQUAL evallearn)
add_definitions("-fopenmp")
add_definitions("-DUSE_AVX2 -mbmi2 -mavx2 -march=corei7-avx")
elseif(target STREQUAL evallearn-sse42)
add_definitions("-fopenmp")
add_definitions("-DUSE_SSE42 -msse4.2 -march=corei7")
elseif(target STREQUAL tournament)
add_definitions("-DFOR_TOURNAMENT")
add_definitions("-DUSE_AVX2 -mbmi2 -mavx2 -march=corei7-avx")
elseif(target STREQUAL tournament-sse42)
add_definitions("-DFOR_TOURNAMENT")
add_definitions("-DUSE_SSE42 -msse4.2 -march=corei7")
elseif(target STREQUAL avx2)
add_definitions("-DUSE_AVX2 -mbmi2 -mavx2 -march=corei7-avx")
elseif(target STREQUAL sse42)
add_definitions("-DUSE_SSE42 -msse4.2 -march=corei7")
elseif(target STREQUAL sse41)
add_definitions("-DUSE_SSE41 -msse4.1 -march=core2")
elseif(target STREQUAL sse2)
add_definitions("-DUSE_SSE2 -msse2 -march=core2")
elseif(target STREQUAL noss2)
add_definitions("-DNO_SSE -m32 -march=pentium3")
elseif(DEFINED target)
message(FATAL_ERROR "invalid target")
endif()
set(sources
bitboard.cpp
bitboard.h
engine/2017-early-engine/2017-early-param.h
engine/2017-early-engine/2017-early-search.cpp
engine/help-mate-engine/help-mate-search.cpp
engine/help-mate-engine/help-mate-search.h
engine/local-game-server/local-game-server.cpp
engine/mate-engine/mate-search.cpp
engine/mate-engine/mate-search.h
engine/user-engine/user-search.cpp
eval/evaluate.cpp
eval/evaluate_bona_piece.cpp
eval/evaluate_io.cpp
eval/evaluate_io.h
eval/evaluate_kkpt.cpp
eval/evaluate_kpp.cpp
eval/evaluate_kppt.cpp
eval/evaluate_kppt.h
eval/evaluate_no_eval.cpp
eval/kppt_evalsum.h
eval/progress.cpp
eval/progress.h
evaluate.h
extra/all.h
extra/benchmark.cpp
extra/bitop.cpp
extra/bitop.h
extra/book/apery_book.cpp
extra/book/apery_book.h
extra/book/book.cpp
extra/book/book.h
extra/book/mt64bit.h
extra/config.h
extra/entering_king_win.cpp
extra/key128.h
extra/kif_converter/kif_convert_consts.h
extra/kif_converter/kif_convert_tools.cpp
extra/kif_converter/kif_convert_tools.h
extra/long_effect.cpp
extra/long_effect.h
extra/macros.h
extra/mate/mate1ply.h
extra/mate/mate1ply_with_effect.cpp
extra/mate/mate1ply_without_effect.cpp
extra/mate/mate_n_ply.cpp
extra/move_picker/move_picker_2017Q2.cpp
extra/move_picker/move_picker_2017Q2.h
extra/see.cpp
extra/sfen_packer.cpp
extra/test_cmd.cpp
extra/thread_win32.h
extra/timeman.cpp
learn/evaluate_kppt_learn.cpp
learn/half_float.h
learn/learn.h
learn/learner.cpp
learn/learning_tools.cpp
learn/learning_tools.h
learn/multi_think.cpp
learn/multi_think.h
misc.cpp
misc.h
move_picker.h
movegen.cpp
old_engines/config/old_config.h
old_engines/config/old_search.h
old_engines/config/old_thread.h
old_engines/engines/2016-late-engine/2016-late-param.h
old_engines/engines/2016-late-engine/2016-late-param_body.h
old_engines/engines/2016-mid-engine/2016-mid-param.h
old_engines/engines/check-shogi-engine/check-shogi-param.h
old_engines/engines/must-capture-shogi-engine/must-capture-shogi-param.h
old_engines/move_picker/move_picker_2015.h
old_engines/move_picker/move_picker_2016Q2.h
old_engines/move_picker/move_picker_2016Q3.h
position.cpp
position.h
search.h
shogi.cpp
shogi.h
thread.cpp
thread.h
tt.cpp
tt.h
usi.cpp
)
add_executable(YaneuraOu-by-clang ${sources})
target_link_libraries(YaneuraOu-by-clang stdc++fs pthread)
@ohga
Copy link
Author

ohga commented Nov 22, 2017

YaneuraOu( https://github.com/yaneurao/YaneuraOu )向け

CMakeLists.txt を source 以下に入れて、
cd source && mkdir build && cd build && cmake -Dtarget=avx2 .. && make
とか出来るようになるはず。
target はオリジナルの make のものとほぼ同じ、省略時は avx2
ninja-build と gnu make は試した

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment